问题标签 [epplus-4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
815 浏览

epplus - 保存 ExcelPackage (EPPlus) 后读取电子表格时出现异常

我正在使用 EPPlus (4.0.4) 处理 .xlsx 电子表格中的数据并保存文件,之后立即将部分数据加载到数据表中。

在我调用 .Save() 方法后,电子表格被保存,但随后我得到一个“外部表不是预期格式”。尝试填充 DataAdapter 时出现异常。

我创建了一个控制台应用程序,以尽量减少演示问题所需的代码量,代码如下:

重现步骤:

  1. 针对新创建的电子表格运行应用程序,出现异常
  2. 注释掉 pck.Save(); 行并且异常仍然发生(此时电子表格在某种程度上被破坏了)
  3. 在 Excel 中打开电子表格并保存
  4. 再次运行应用程序(pck.Save() 仍然被注释掉)并运行
  5. 把 pck.Save(); 重新输入并发生异常。

因此,有一个不切实际的解决方法,即使用 EPPlus 进行操作保存文件,然后将其保存在 Excel 中,然后运行该过程而不使用 EPPlus 保存它。

似乎 .Save() 方法将文件置于异常状态,我不知道还能尝试什么,任何建议将不胜感激。

0 投票
3 回答
1382 浏览

c# - EPPlus:支持自动保存功能吗?

我打算在我的 WPF 应用程序中使用 EPPlus(4.0.4 版本)库将我的实时数据导出到使用 C# .NET 的 Excel 工作表。然而,我的问题是针对 EPPLus 库的。

我已经浏览了 EPPlus 示例 (),您可以在其中使用 SetValue 将值写到工作表中。

问题是,由于我的应用程序需要在可能的几天内写入实时数据(!),我想确保我的数据每隔一段时间保存一次,以避免在应用程序/系统的情况下丢失数据碰撞。

通常,我希望有一个自动保存功能,其中可以保存当前状态,然后像往常一样继续添加新记录。

但是,EPPlus 似乎没有这个(?)......我将如何实现这一目标?

示例源代码

0 投票
1 回答
1650 浏览

c# - 自动列宽 EPPlus 慢

我使用此代码将数据加载到工作表(C#、EPPlus 4.04)并自动设置列宽:

有一个显着的性能损失,这似乎与工作表中的记录数量成线性关系。例如 15K 记录的 2 秒差异,我必须创建多个文件。

有没有办法在不诉诸异步处理之类的情况下加快速度?

Ps,在填充数据之前设置 AutoFitColumns 不起作用,列将保持对于数据来说太小的宽度。

0 投票
1 回答
6496 浏览

c# - EPPlus LoadFromDataTable() 是双重转义 & 符号

这是我的代码:

DataTable的_rules行中的文本包含一个 & 符号:&。举个例子吧AT&T。在 Excel 中查看文件时,文本显示为AT&T. 我深入研究了sharedStrings.xml,发现文本被双重转义为AT&T.

如何防止这种行为?我尝试将文本用双引号括起来并注释掉AutoFitColumns()andWrapText行。

0 投票
1 回答
4265 浏览

epplus-4 - 如何在 C# 中使用 EPPlus 将一个 Excel 工作表添加到其他工作簿中?

上面的代码在 EPPlus 3.1.3.3 中有效,但在 vesion 4.0.4 中无效。它抛出以下错误:

0 投票
1 回答
2566 浏览

c# - 如何在 EPPlus C# 中使 Excel 列只读但可重新调整大小?

在我的 MVC 项目中,用户可以在 UI 中选择一些产品,并以 Excel(.xlsx)格式下载相关产品信息。

我们的业务要求是,除了少数列/单元格之外,文件应该是只读的。我EPPlus 4.0.4用来生成 Excel,到目前为止它工作得很好。

我在这里面临的问题是,在我保护工作表的那一刻,用户不能再重新调整列的大小(拖动标题以更改列宽)。因此,某些列中的文本不完全可见。为了解决这个问题,我将它们设为 AutoFit(下面代码中的##)。因此,文本现在可见。但是,用户仍然无法更改他们应该能够更改的列宽。

所以我的问题是,我可以将单元格/列设置为只读,但让它们像普通 Excel 一样重新调整大小吗?

我的代码如下

0 投票
1 回答
649 浏览

c# - 如何从 Excel 文件读取一系列单元格(例如 A1:G30)到 GridView

在过去的几天里,我一直在寻找解决方案,我发现这个库 EPPlus 允许在相同的时间格式中检索除了实际数据之外,如果需要,还可以从 Excel 文件中检索我目前的目标。

您能否逐步向我解释如何通过 ASP.NET/C# 从位于特定路径的 Excel(如 A1:P34)文件中读取单元格范围?

PATH 类似于 //ServerName/Folder1/Folder2/Folder3/ExcelFileName.xlsx

我查看了网络,但没有明确的文档说明我在这方面的 C# 专业知识水平。我尝试了几个示例,但没有一个示例将 Excel 范围显示到网页中。(例如这个。)

注意:我试过的三个例子都包括一个文件上传控件,我不需要这个。我想通过本地网络从指定位置读取 Excel 文件。

EPPlus 库可在此处获得。

如果您可以向我推荐任何更简单的资源来了解 EPPlus:
- 从 Excel 中读取 - 从 Excel 中
写入 - 从 Excel 中
读取图表

这个 EPPlus 的功能看起来确实很棒。

0 投票
1 回答
131 浏览

epplus - epplus 用于使用大于和小于生成 excel

我正在为 Excel 使用 epplus。如何使用greater thanless than 条件来显示借方和贷方价值drcr

  • 如果值是-123456我想这样显示:₹1,23,456 DR
  • 如果值是123456我想这样显示:₹1,23,456 CR

我正在使用Style.Numberformat.Format = "₹ #,###.00",但它以这种方式显示结果:-₹1,23,456. 我怎样才能让它附加crdr

0 投票
4 回答
13316 浏览

c# - EPPlus 将包含 200 多列数据表的 200 万行保存到多个 Excel 文件中

我有使用 EPPlus 将 SQL 表中的所有记录保存到 excel 工作表的功能。如果我导出少量数据一切正常,但有 200 多列和 500 000 多行我得到 OutOfMemory 异常。

我想以一种能够为每个文件保存 50 000 条记录的方式修改我的代码。

这是我适用于小数据的代码:

以及我修改后的代码,每个文件拆分 50 000 条记录:

基本上这工作正常,但是在我的代码的第一个版本中,我使用了using语句中的所有内容,而在第二个版本中,我调用了两次相同的代码。

  1. 如何修复我的代码以删除重复代码并将所有内容放入其中。
  2. 我可以将下一组(50 000 条记录)添加为新工作表而不是创建新文件吗?
  3. 将数据保存到文件时 EPPlus 限制是多少?rows x columns? 我发现 EPPlus 应该处理超过百万行的信息,但不像我拥有的​​那么多列。我认为我可以用单列导出数百万行,但对于 200 多列对我来说,50 000 行是有限的。我想知道是否有数量(行 x 列)会限制我的导出工作正常。我希望该导出功能是通用的,因此当我传递具有 50 列的数据表时,它将导出例如每个文件 100 000 行,而对于 2 列,它将导出每个文件 50 万行。
0 投票
0 回答
3783 浏览

asp.net - 在 EPPLUS 中读取 xlsx (2007) 文件时出错

尝试读取xlsx保存在Excel 2007using EPPluslibrary 中的 excel 文件 ( ) 时出错。

一些解决方法:

  1. 带有 EPPlus v. 的 ASP.net mvc 5 应用程序。4.0.4.0
  2. 用户可以从我的网站下载模板文件,然后在其中填写所需的数据,然后将其上传回来。文件包含4工作表,其中之一是hidden. 工作簿受密码保护,工作表也受到保护。他们都有不同的密码。模板文件 ( xlsx) 在Excel 2007 or 2010.
  3. 当用户发回文件时,我正在尝试使用打开并阅读它EPPlus
  4. 当我发布在 Excel2010 中填写的文件时,一切正常。ExcelPackage但是当我从 Excel 2007 发布文件时, ctor中出现异常。

好的。现在有一些代码片段。有我使用流上传和读取文件的初始代码。

上面的代码适用于 Excel 2010,但不适用于 2007。抛出异常然后调用ExcelPackage()ctor。

调试数据:

上传的文件ContentType"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"

异常详情(磁盘写入错误):

之后我尝试将工作簿保护密码添加到ctor参数并将代码更改为

之后我有了新的异常类型:"The stream must be read/write"。看起来不错,因为我不保存上传的文件,所以我决定保存文件并将代码更改为(不带密码):

和异常详细信息是:

此时,当我上传 2010 年保存的文件时 - 代码工作正常。将工作簿密码添加到调用代码会给我无效密码异常。

实际上它看起来也不错,因为文件本身没有密码保护/加密。

有谁知道发生了什么,如何解决这个问题?

重要更新:

我已删除woorkbook保护并成功打开文件。