问题标签 [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 投票
0 回答
342 浏览

excel - 如何在 Epplus 中获取空白单元格作为范围?

我想在 Vb.net C# 使用 Excel.Interop 中使用 epplus 4 从一个范围中获取所有空白单元格,我正在使用这个:

如何使用 vb.net 或 c# 代码在 Epplus 4 中执行相同的操作?任何帮助表示赞赏。

0 投票
1 回答
176 浏览

c# - 如何在不提示替换(空)目标单元格(EPPlus)的内容的情况下将图像添加到我的工作表?

当我打开使用 EPPlus (C#) 生成的 Excel 文件时,我得到“你想替换 [... .xlsx]PivotTable 中目标单元格的内容吗?

正如您在下面的屏幕截图中所见,我希望显示图像的单元格中没有任何内容。即使我将图像推到数据透视表的外边缘之外,我也会收到此消息(我一直放在 C/3 列下方)。当我对上面引用的对话框选择“是”时,图像最终被放置在工作表上(如果我选择“否”则不添加),工作表如下所示:

在此处输入图像描述

这是我用来添加图像的代码:

我怎样才能让消息不显示(以编程方式,这不可能是用户需要做的事情)和“只是做它”或让它知道那个位置没有任何东西,无论如何?

更新

这显然不是问题;我试图删除这篇文章,但不能,因为它有答案。即使我评论了图像的写作,我也明白了。并试图阻止这样的消息:

...也不起作用-我仍然明白。

显然问题出在其他地方,但我不知道在哪里。

更新 2

这是数据透视表下隐藏数据的情况;一旦我摆脱了它,问题就消失了。IOW,问题出在我的代码上,而不是 EPPlus。

0 投票
2 回答
3191 浏览

c# - 使用 EPpplus 将部分样式应用于 excel 单元格中的文本

如何将部分样式应用于单元格的内容?例如,如果一个单元格包含以下文本“Hello World”。我想让“Hello”这个词加粗,而“World”这个词保持不变。我已经将样式应用于整个单元格,只是无法将其应用于单元格的某些部分。

0 投票
1 回答
1199 浏览

excel - 如何创建一个在 EPPlus 中计算值的 DataField?

我正在将 Excel 互操作数据透视表代码移植到 EPPlus。我在生成计算字段值时遇到了困难。在 Excel 互操作中,我可以这样做:

这样,数据透视表上的“平均价格”值将显示 TotalPrice 除以 TotalQty 的值。

但是如何在 EPPlus 中做到这一点?我可以像这样创建“普通香草”数据字段:

...但是在计算价值时,我感到困惑。我的出发点是一个在线示例,如下所示:

所以我尝试了以下方法,但没有一个是正确的:

这些连枷都没有编译。我需要做哪些调整,或者我需要采取哪些全新的方法?

更新

我可以计算这些值并将它们放在数据表上并以这种方式引用它;但这真的是唯一/最好的方法吗?

更新 2

我这样做了(将 vals 直接添加到包含数据透视表源数据的工作表中):

...但仍然想知道在创建数据透视表时如何使用计算字段来完成。

0 投票
1 回答
269 浏览

excel - 我怎样才能得到“总计”的平均值而不是求和?

我在数据透视表中获得(免费)一个“总计”列:

在此处输入图像描述

对于“TotalQty”和“TotalPrice”来说,这很好,但对于“AvgPrice”和“PrcntgOfTotal”来说就没有那么多了。

如何让这些 val 在第一种情况下显示平均值而不是总和?

月百分比是该月总和的 TotalPrice 百分比(不是所有月的总和);所以 GrandTotal.PrcntgOfTotal 也不应该是每月值的平均值。

这是生成此数据透视表的代码:

0 投票
2 回答
889 浏览

excel - 如何将 Excel 数据透视表中的“子项”移动到另一列?

我生成了一个 Excel 表,其中包含格式如下的数据:

在此处输入图像描述

IOW、“总包”、“总购买”、“平均价格”和“总百分比”值位于它们自己的列(数据)中,用于每个总体(或侧面)描述。

当我对这些数据进行数据透视表时,它会将这些值放在每个描述下方:

在此处输入图像描述

这是有道理的,但那些习惯于以前外观的人希望它在数据透视表中得到复制。如何将数据透视表中的描述“子项”转移到它们自己的列?

这是我用来生成数据透视表的代码:

因此,有一个 RowField(“MonthYr”),其值为“201509”和“201510”,一个 ColumnField(“Description”)和四个 DataField,它们在 Description 列字段下对齐。我想将这四个字段向右移动到它们自己的列,并且将描述标签垂直居中在它们左侧的这四个值之间。[这怎么可能?

0 投票
2 回答
1428 浏览

excel - 如何更改 EPPlus 中 ColumnField 列标题的格式?

我在 EPPlus 中创建一个列字段,如下所示:

...显示如下(“201509”和“201510”列):

在此处输入图像描述

我希望这些值显示为“Sep 15”和“Oct 15”

在 Excel 互操作中,它是这样完成的:

...但在 EPPlus 中,相应的变量 (monthYrColField) 没有“NumberFormat”(或“Style”)成员。

我试过这个:

...但是,虽然它没有抱怨或造成严重破坏,但也没有改变“201509”和“201510”的vals

如何将 EPPlus 中 ColumnField 列标题的格式从“未转换”更改为“MMM yy”格式?

更新

对于 VDWWD:

正如您在评论中看到的,有很多与数据透视表相关的东西在 EPPlus 中不起作用或难以使用;与 EPPlus 相比,Excel Interop 是一只熊(而不是泰迪熊或考拉,但更像是一只灰熊),但对于数据透视表,与 Exterop 的炸得酥脆的相比,EPPlus 似乎有点半生不熟.

0 投票
2 回答
698 浏览

c# - OpenOfficeXml 在数据透视表中重复标签

我正在使用 Epplus 并尝试在表格类型数据透视表中“重复所有项目标签”。我尝试了很多东西,但 EPPlus 库看起来没有办法。我决定 manulplate 数据透视表 xml,我需要在 pivotTableFields 上添加fillDownLabels属性,但我不知道该怎么做。

我编写了这个方法,它添加了属性,但我的数据透视表仍然没有重复项目标签。xml格式应该如何?如何使用 fillDownLabels 属性?

0 投票
1 回答
2347 浏览

c# - 在 C# 中将数据导出到 excel 时,索引超出了数组的范围

我有ASP.Net网站。以下是我将流写入 excel 的方法。

在函数的这一行 -worksheet.Cells[1, 1].LoadFromCollection(jsonData, true);

我收到以下异常

指数数组的边界之外

我尝试设置为worksheet.Cells[0,0]

我正在使用EPPlus 4.1.0包。

JSON样本:-

0 投票
1 回答
720 浏览

c# - Excel 互操作打开/修复 HResult 异常

我所做的:使用 Interop 和 ClosedXML 的混合填充和格式化 Excel 文件。

首先,通过 Interop 填充文件,然后保存、关闭,然后我使用 ClosedXML 格式化单元格的 RichText。

不幸的是,这种格式会导致 Excel 将我的文件视为“损坏”并需要修复它。这是相关部分:

以及上色方法:

文件 myfile.xlsx 中
的错误 执行了以下修复:_x000d__x000a__x000d__x000a_
修复的记录: /xl/sharedStrings.xml-Part
的字符串属性(字符串)

我已经通过所有的 xmls 寻找线索。在受影响的工作表中,在生产力工具的比较视图中,一些块显示为插入到修复的文件中并在损坏的文件中删除,尽管似乎没有任何重大变化 - 除了一件事:该单元格的样式属性。这里有一个例子:

我检查了styles.xml 的样式59,但没有。在修复后的文件中,这个样式已经改成了14,在我的styles.xml中被列为数字格式。

不幸的是,这些无效样式索引的全局搜索/替换并没有解决问题。看到这里发生的事情有损坏的索引、重命名的 xmls、无效的命名范围等,我采取了不同的方式:根本不使用互操作,也许损坏是由 Excel 引起的,而着色只是最后一个稻草。

仅使用 ClosedXml:

哇。哇。这使情况变得更糟。我注释掉了着色部分,因为没有它,Interop 生成了一个没有错误的可读文件,所以这也是我对 ClosedXml 的期望。

这就是我打开文件并使用 ClosedXml 处理工作表的方式:

这就是我将值写入文件的方式:

zeile 是一个简单的 int 计数器。

然后我敢于设置列宽:

以及在保存验证之前以完全相同的方式在另一张表中设置一些值。

瞧:验证抛出错误:

属性“名称”应具有唯一值。它的当前值 'Legende 与其他人重复。
属性“sheetId”应该具有唯一值。它的当前值“4”与其他值重复。

还有一些错误,例如属性“top”具有无效值“11.425781”。

Excel无法直接打开文件,必须修复它。我的工作表“Legende”现在是空的,第一张工作表而不是第三张工作表,我得到了另外的第四张工作表“Restored_Table1”,其中包含我原来的“Legende”内容。

这个文件到底是怎么回事??

新尝试:在 LibreOffice 中从头开始重新创建 Excel 模板。

我现在认为这个问题完全具有误导性。如果我使用 LibreOffice 新创建的文件,由于验证错误太多,验证会导致 System.OutOfMemory 异常。在 Excel 中打开需要修复,提供额外的工作表等等。

在 LibreOffice 中创建,然后在 Excel 中打开,保存,然后使用该文件作为模板会产生更好的结果,尽管还不完美。由于我在创建新文件时将旧 Excel 文件中的部分复制到 LO 中,因此我假设复制了一些损坏的残留物。

我无法摆脱这种感觉,毕竟这是文件本身,与我如何编辑它无关!

明天会发布更新。