问题标签 [closedxml]
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.
c# - 使用 OpenXML 从表中生成电子表格
目标:生成一个电子表格,其中工作表命名为每个工作表第一行列出的表和列名。这些实际上将基于从这些表构建的类。
问题:打开电子表格后,它声称发现“不可读的内容”并询问我是否要恢复。如果我选择是,它确实可以完美地恢复电子表格,但用户不必这样做。
观察:使用 SDK,我能够看到电子表格的内部工作原理,并且我注意到工作表的 xml 名称是真正的问题。在最初下载的版本中,它们被命名为 Sheet1 到 Sheet9,但随后它们进入到 Sheet1a 到 Sheet1f。所以基本上它用十六进制1-f对它们进行编号。在我对其进行修复后,他们将名称更正为纯数字。
不确定您是否可以看到图片,看起来我的工作阻止了该网站:/
注意:我查看了我的代码,但没有看到任何可以具体命名这些内部 xml 工作表的地方,因此我不确定要与您分享哪些代码,但我发布了创建这些工作表的代码部分。
构建电子表格的方法:
构建工作表的方法:
c# - 如何在 Excel 工作簿上启用“共享”选项?
是否可以通过OpenXML或ClosedXML在 excel 文档上启用“共享” ?或者任何其他库,如果它可以提供帮助......我相信这通常是在您保存文档时执行的(至少它在 VBA 中是这样工作的),但我找不到如何在 C# 中指定保存参数。
我想避免使用 InterOp,因为我可能会通过网络在多个文件上批处理这个过程。
编辑:根据2009 的一些旧页面,OpenXML 无法操作受保护的文件存在限制。但是,这也适用于共享吗?
c# - ClosedXML 区分大小写的列标题
例如,我有这样的代码:
当我打开刚刚创建的文件时,我看到警报:“Excel 在 Excel.xlsx 中发现了不可读的内容 ....”
如果我确认此警报 excel 会自动为“区分大小写”列添加“2”。
如何解决这个问题?
asp.net - 向现有 Excel 表添加新行时图表不会更新(不必使用命名范围)
我对使用 closedXMl 和 Excel 也很陌生(至少为此目的),如果我问愚蠢的问题,我很抱歉。
我知道 closedXML 还不支持图表,所以唯一想到解决这个问题的是使用excel table创建我的图表。这样,我认为 ClosedXML 会在我插入新行时更新范围,并且图表会选择它。好吧,它没有。至少当我使用 closedXML 库从代码中添加行时不会。
奇怪的是,从 excel 中添加新行会自动更新图表,但如果我想从代码中获得相同的结果,我必须使用 OFFSET 公式和命名范围,然后将图表源数据设置为这些命名范围。这就是为什么我想知道我用来插入新行的代码是否有问题:
如您所见,代码非常简单,模板也很简单,它只包含两列:“Year”(table1[Year])和“Sales”(Table1[Sales]
我认为这与我的模板没有任何关系,因为正如我告诉你的那样,直接从 excel 添加新行按预期工作,只有当我从代码生成表格时,图表系列才不包含新行添加的
有必要手动添加新范围(Sheet1!Table1[Sales]和Sheet1!Table1[Year]),因为它只包括第一行(插入表格时默认添加的行)
任何帮助将非常感激
PS 这是一个包含完整代码以及 excel 模板的 rar链接(\Templates\MyTemplate.xlsx)
c# - 如何使用 ClosedXml 使 Excel 在公式单元格中换行
问题是单元格内容没有被包装,当该单元格包含一个引用具有一些长字符串的单元格的公式时。
在CodePlex上,我找到了一个关于这个问题的线程和一个简单的代码来查看问题:
我还尝试手动设置行高而不是包装单元格:
然而也没有成功。
对此我能做些什么吗?
根据 Peter Albert 的评论,我尝试制作设置行的AutoFit
. 我设法在 ClosedXML 中找到的唯一方法是workSheet.Row(3).AdjustToContent();
. 但这也不起作用(既不调整某些列的内容)。
excel - 如何在 ClosedXML 中创建数据透视表的示例
我们使用 ClosedXML 生成 .XLSX 电子表格,因为它小巧、灵活且快速。似乎所有的数据透视表类和方法都在 API 中,但是没有关于如何(以正确的顺序)创建数据透视表的文档或示例。我们的猜测尝试产生的文件在打开时会给出有关 XML 损坏的错误,并且 Excel 会提示您删除数据透视表。
.net - 确定 IXLCell 是否使用 DateTime 格式
全部,
在 .NET 中,我使用 ClosedXML 读取上传的 Excel 文件并将单元格转换为二维字符串数组。最终目标是修改某些单元格并将修改后的单元格显示给用户。
我目前无法处理存储 DateTime 值的单元格。奇怪的是,当我读取单元格的数据类型时,它返回 XLCellValues.Number(不是 XLCellValues.DateTime,这是我所期望的)。我发现 Excel 实际上将 DateTimes 存储为双精度数据,其中包含一些元数据,表示将其转换为日期,这可能解释了该问题。
我想知道是否有人知道使用 ClosedXML 来检查 Excel 单元格的值是否为 DateTime 类型的方法?如果是这样,我如何将该值转换为 .NET DateTime?
谢谢!
c# - 如果小数部分为零,如何删除小数分隔符?
我正在使用ClosedXML创建一个 Excel 电子表格。该问题发生在格式化单元格时,包含百分比。
我想出的格式是0.##%
.
当小数部分不为零时效果很好,它显示:1,15%
; 但是当它是整数值时,它会使小数点分隔符可见,同时隐藏零,例如:5,%
.
我怎样才能让它也隐藏小数分隔符?
这是一个小程序,演示了这个问题:
输出是
image - ClosedXML add image
I am able to add in an image to an excel spreadsheet by using OpenXML. However for the rest of the program I use ClosedXML to add data. I can add data at a specific cell using the column and row index. If I can add an image to an excel (It currently is a separate layer it seems, hovering over cells), how can I add it to a cell using ClosedXML?
This is the code I used, which I found here on stack overflow somewhere. I modified it to use a MemoryStream for the image. So firstly one of the problems I have is that I pass a spreadsheet document to the method, however I'm not sure what I can do in ClosedXML to fix this Really appreciate any help with how I could go about this. Ideally I would love to simply say
Thanks for any help!
c# - ClosedXml 不复制电子表格的打印机设置
我有 xltx Excel 的模板,当我从中创建(手动)新文档并单击File
->Print
在 Excel 中,第一张纸适合一页。
比我在以下帮助下从我的模板创建新文档ClosedXml
:
当我打开生成的文档并打开打印对话框 ( File
-> Print
) 时,第一张纸不适合一页。
UPDATE1: XLWorksheet::CopyTo
将页面设置从原始模板复制到生成的工作簿。因此,如果 xltx 模板具有页面设置FitToPages(1,1)
,则生成的文档将具有相同的页面设置。尽管如此,当我打开 ClosedXml 生成的工作表的打印预览时,它不适合一页。所以,问题是:原始工作簿和生成的工作簿具有相同的页面设置,但生成的工作表不适合一页。
所以有问题:
- 必须从原始模板中复制哪些结果表适合一页?
- 有没有办法实现它?
解决方法