问题标签 [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.

0 投票
2 回答
6535 浏览

c# - 你能在 ClosedXML (C#) 中填充一个范围吗

我想看看您是否可以在使用 closedXML而不是一次填充单个单元格时从数组中一次填充一个范围。另外,如果可以从数组中设置一个范围,那会比逐个单元格地循环并填充每个单元格更快吗?

0 投票
3 回答
2426 浏览

linq - OpenXML linq 查询

我正在使用 OpenXML 打开电子表格并循环遍历电子表格的行。我有一个 linq 查询,它返回一行中的所有单元格。linq 查询直接来自 MSDN 上的演示。

linq 查询非常擅长返回所有具有值的单元格,但它不会返回没有值的单元格。这反过来又使得无法分辨哪个单元格是哪个单元格。让我再解释一下。例如,我们的电子表格中有三列:姓名、SSN 和地址。这个 linq 查询的工作方式是它只返回那些对给定行具有值的单元格。因此,如果有一行数据包含“John”、“”、“173 Sycamore”,那么 linq 查询只会在枚举中返回“John”和“173 Sycamore”,这反过来又让我无法知道是否“173 Sycamore”是 SSN 或地址字段。

让我在这里重申一下:我需要的是返回所有单元格,而不仅仅是包含 value 的单元格

我试图以我能想到的各种方式来监视 linq 查询,但我没有任何运气(即 - 删除 where 子句不是诀窍)。任何帮助,将不胜感激。谢谢!

0 投票
1 回答
971 浏览

c# - 使用 ClosedXML 写入十进制值列表

我正在开发一个程序,它使用 ClosedXML 库将一些 sql 查询写入 excel 文件。我使用 executeEscalar() 将值存储在十进制列表中:

这些值作为十进制值正确存储在列表中,但是,当列表插入到 excel 单元格中时,当我打开 excel 文件时,单元格显示 0 值:

0 投票
2 回答
3596 浏览

c# - C#:从 Excel 公式中读取值

我一直在使用Closed XML自动生成我的 Excel 报告。到目前为止一切顺利,但是我需要将某些公式生成的值保存回数据库。

公式应该是这样的:=SUM(Day1, Day2, Day3),所以简单的 Excel 公式解析器不适合我的账单——我需要一些可以与之交互的东西!

我不介意必须保存电子表格然后重新打开它。只要它快速高效,我什么都愿意。谢谢一堆。:)

0 投票
3 回答
31139 浏览

.net - EPPlus 和 ClosedXML 库在处理 OpenXML 方面有什么区别?

我试图在 ClosedXML、EPPlus 和可能的 SpreadsheetLight 之间进行选择。我可以考虑哪些原因来选择其中一个而不是其他的?

0 投票
4 回答
9652 浏览

c# - 在 C# 中读取 Excel 数据和单元格格式

我正在寻找一个允许我在 C# 中读取 Excel 文档的库,但我需要能够读取单元格格式以及电子表格中的数据。我发现这个有用的问题列出了许多读取 Excel 文档的不同选择,但是这里提供的许多解决方案只允许读取电子表格的内容,而不是单元格属性(例如字体、背景颜色等)。但是,对于我的特定问题,我需要阅读包含大量单元格格式的文档,并且我需要能够阅读此格式信息。

我需要阅读的 Excel 文档是xls文档,所以现阶段不需要阅读xlsx 。我正在寻找一个可以在没有安装 Excel 的服务器上使用的库,所以它必须是一个独立的解决方案,最好是开源的。

有没有人有从xls文档中读取单元格格式信息的经验,并且可以建议一个有助于完成这项任务的库?

更新:

我正在考虑使用 ClosedXml,因为从我所阅读的内容来看,它似乎提供了我需要的功能。我正在使用此示例代码:

http://closedxml.codeplex.com/wikipage?title=Finding%20and%20extracting%20the%20data&referringTitle=Documentation

并且能够毫无问题地读取 Excel 文档的内容。我只使用了此代码中的类别示例,但已将两个类别名称单元格格式化为具有背景颜色。现在我想用 ClosedXml 做的是确定:

  • 如果在特定单元格上定义了填充背景颜色

  • 如果已定义,则检索填充的颜色(十六进制值即可)

这是我尝试使用的一些代码:

但是代码

总是抛出期望“字典中不存在给定的键。” ,即使对于确实定义了背景颜色的单元格也是如此。任何人都知道如何使用 ClosedXml 来实现它?

0 投票
3 回答
5098 浏览

c# - ClosedXml 中的“无法将主题颜色转换为颜色”

我正在尝试使用 ClosedXml 读取 Excel 中单元格的填充背景颜色。我正在使用此示例代码,并且能够毫无问题地读取 Excel 文档的内容,但无法将单元格的Fill BackgroundColor读取为十六进制值。我能够看到在BackgroundColor下定义的ThemeColorThemeTint属性,但还没有找到将它们转换为System.Color或十六进制值的方法。这是我的代码:

似乎XLColor.FromTheme方法总是抛出异常“无法将主题颜色转换为颜色”。有谁知道从ThemeColorThemeTint值中获取System.Color的另一种方法?

更新:

我没有提到我已经尝试过使用BackgroundColor的Color属性,不幸的是它没有正确填充,如果你在调试器中查看它,你会看到这个属性抛出了与方法XLColor 相同的异常。来自主题。所以这绝对看起来像 ClosedXml 中的一个错误。有谁知道解决方法?

0 投票
1 回答
1002 浏览

closedxml - 复制工作表丢失页眉和页脚

我的 Web 应用程序使用 ClosedXML 处理 Excel 文件。

我正在尝试使用带有页眉和页脚的 Excel 模板复制工作表,但结果它们没有出现。仅显示数据和单元格。我使用这种方法来复制我的工作表。

你能帮我吗?

0 投票
1 回答
852 浏览

azure - Azure 上的自定义 FileResult:浏览器永远等待

我有一个将 Excel 作为自定义 FileResult 返回的操作。我的解决方案基于ClosedXml库(内部使用 OpenXml)。我的 XlsxResult 类使用服务器上的只读 .xlsx 文件作为模板。然后它将模板传递到一个内存流中,该内存流被操作并使用 ClosedXml 保存回来。最后,内存流被写入响应。

这在 Cassini 和 IIS Express 上都可以正常工作,但在 azure 上部署时失败,没有任何错误。我遇到的唯一影响是发送到服务器的请求永远不会得到任何响应。我还在等待60分钟左右后发生的事情......

我的行动:

我的文件结果

所以我错过了什么(显然我是)。

请注意:

  1. Azure 中没有缺少 dll,因为我使用 Windows Azure 工具 1.7 的 RemoteAccess 功能进行了检查
  2. 我的出口不是一项繁重的长期任务。
  3. 当我将操作更改为仅返回带有模板 xlsx 的 FilePathResult 时,它在 azure 上工作。但是我需要在返回文件之前对其进行处理,因为您可能会怀疑:-)

坦克。

更新: 在我广泛登录我的代码后,在 ClosedXml“保存”方法调用中执行挂起,没有错误。但仍然没有错误。WADLogsTable 的摘要:

  • 从路径打开模板文件:E:\sitesroot\0\Content\templates\MyTemplate.xlsx
  • 从路径打开的模板: E:\sitesroot\0\Content\templates\MyTemplate.xlsx 只是
  • 将模板复制到可编辑的内存流。复制的字节数:15955,位置:15955
  • 修改了内存中的excel文档。
  • 当它调用 workbook.Save(); 时它挂起 这是一个 ClosedXml 方法调用。
0 投票
1 回答
18296 浏览

c# - ClosedXML:使用百分比、1 位小数和四舍五入?

我正在尝试使用 C# 并将ClosedXML数据输入到 Excel 工作表中。我已经找到了我正在寻找的大部分东西,但是我在ClosedXML处理小数位数以及四舍五入方面遇到了一些问题。

我目前正在使用cell.Style.NumberFormat.NumberFormatId = 10; 让单元格显示小数点后 2 位的百分比,但是我只想显示小数点后 1 位,而wikiClosedXML仅显示小数点后 0 或 2 位的百分比。

接下来当我不使用ClosedXML并直接添加数据时,Excel会将小数位向上四舍五入,但是当我使用ClosedXML输入数据时单元格不四舍五入,有没有办法强制ClosedXML为我四舍五入,还是我需要手动做吗?