问题标签 [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.
excel - 如何在 Epplus 中获取空白单元格作为范围?
我想在 Vb.net C# 使用 Excel.Interop 中使用 epplus 4 从一个范围中获取所有空白单元格,我正在使用这个:
如何使用 vb.net 或 c# 代码在 Epplus 4 中执行相同的操作?任何帮助表示赞赏。
c# - 如何在不提示替换(空)目标单元格(EPPlus)的内容的情况下将图像添加到我的工作表?
当我打开使用 EPPlus (C#) 生成的 Excel 文件时,我得到“你想替换 [... .xlsx]PivotTable 中目标单元格的内容吗? ”
正如您在下面的屏幕截图中所见,我希望显示图像的单元格中没有任何内容。即使我将图像推到数据透视表的外边缘之外,我也会收到此消息(我一直放在 C/3 列下方)。当我对上面引用的对话框选择“是”时,图像最终被放置在工作表上(如果我选择“否”则不添加),工作表如下所示:
这是我用来添加图像的代码:
我怎样才能让消息不显示(以编程方式,这不可能是用户需要做的事情)和“只是做它”或让它知道那个位置没有任何东西,无论如何?
更新
这显然不是问题;我试图删除这篇文章,但不能,因为它有答案。即使我评论了图像的写作,我也明白了。并试图阻止这样的消息:
...也不起作用-我仍然明白。
显然问题出在其他地方,但我不知道在哪里。
更新 2
这是数据透视表下隐藏数据的情况;一旦我摆脱了它,问题就消失了。IOW,问题出在我的代码上,而不是 EPPlus。
c# - 使用 EPpplus 将部分样式应用于 excel 单元格中的文本
如何将部分样式应用于单元格的内容?例如,如果一个单元格包含以下文本“Hello World”。我想让“Hello”这个词加粗,而“World”这个词保持不变。我已经将样式应用于整个单元格,只是无法将其应用于单元格的某些部分。
excel - 如何创建一个在 EPPlus 中计算值的 DataField?
我正在将 Excel 互操作数据透视表代码移植到 EPPlus。我在生成计算字段值时遇到了困难。在 Excel 互操作中,我可以这样做:
这样,数据透视表上的“平均价格”值将显示 TotalPrice 除以 TotalQty 的值。
但是如何在 EPPlus 中做到这一点?我可以像这样创建“普通香草”数据字段:
...但是在计算价值时,我感到困惑。我的出发点是一个在线示例,如下所示:
所以我尝试了以下方法,但没有一个是正确的:
这些连枷都没有编译。我需要做哪些调整,或者我需要采取哪些全新的方法?
更新
我可以计算这些值并将它们放在数据表上并以这种方式引用它;但这真的是唯一/最好的方法吗?
更新 2
我这样做了(将 vals 直接添加到包含数据透视表源数据的工作表中):
...但仍然想知道在创建数据透视表时如何使用计算字段来完成。
excel - 如何将 Excel 数据透视表中的“子项”移动到另一列?
我生成了一个 Excel 表,其中包含格式如下的数据:
IOW、“总包”、“总购买”、“平均价格”和“总百分比”值位于它们自己的列(数据)中,用于每个总体(或侧面)描述。
当我对这些数据进行数据透视表时,它会将这些值放在每个描述下方:
这是有道理的,但那些习惯于以前外观的人希望它在数据透视表中得到复制。如何将数据透视表中的描述“子项”转移到它们自己的列?
这是我用来生成数据透视表的代码:
因此,有一个 RowField(“MonthYr”),其值为“201509”和“201510”,一个 ColumnField(“Description”)和四个 DataField,它们在 Description 列字段下对齐。我想将这四个字段向右移动到它们自己的列,并且将描述标签垂直居中在它们左侧的这四个值之间。[这怎么可能?
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 似乎有点半生不熟.
c# - OpenOfficeXml 在数据透视表中重复标签
我正在使用 Epplus 并尝试在表格类型数据透视表中“重复所有项目标签”。我尝试了很多东西,但 EPPlus 库看起来没有办法。我决定 manulplate 数据透视表 xml,我需要在 pivotTableFields 上添加fillDownLabels属性,但我不知道该怎么做。
我编写了这个方法,它添加了属性,但我的数据透视表仍然没有重复项目标签。xml格式应该如何?如何使用 fillDownLabels 属性?
c# - 在 C# 中将数据导出到 excel 时,索引超出了数组的范围
我有ASP.Net
网站。以下是我将流写入 excel 的方法。
在函数的这一行 -worksheet.Cells[1, 1].LoadFromCollection(jsonData, true);
我收到以下异常
指数数组的边界之外
我尝试设置为worksheet.Cells[0,0]
我正在使用EPPlus 4.1.0包。
JSON样本:-
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 中,因此我假设复制了一些损坏的残留物。
我无法摆脱这种感觉,毕竟这是文件本身,与我如何编辑它无关!
明天会发布更新。