问题标签 [spreadsheetlight]

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 回答
526 浏览

.net - 创建 Excel 表单控件 - 按钮

我有一个项目使用以下三个库来访问 XLSM 文档

  • 打开 XML
  • 封闭的 XML
  • 电子表格灯

我现在想创建一个表单控件(一个按钮),它将分配一个宏(只是我用 VBA 创建的一个公共函数)。

我该怎么做呢?一个图书馆比另一个图书馆好吗?(或者除了 Open XML 之外,他们中的任何一个都让我这样做)

如果有人使用特定语法,我正在使用 C# :)

0 投票
4 回答
12865 浏览

c# - 如何在电子表格中使用 c# 获取单元格的格式类型

我正在使用电子表格库来使用 c# 读取 Excel 工作表(.xslx)值。

我可以使用以下代码读取单元格值

我正在获取单元格值。但是我怎样才能得到单元格的数据类型呢?我已经检查了文档,但没有找到解决方案。

注意:对于 .xls 类型的 excel 文件,我使用 ExcelLibrary.dll 库,我可以使用以下代码轻松获取单元格的数据类型

但是在电子表格中没有类似的方法。

0 投票
2 回答
4155 浏览

c# - 安装 Open XML 2.0

我正在尝试使用电子表格灯写入 excel 文件,但显然电子表格灯使用 XML 2.0 并且我安装了 2.5。我已取消安装 2.5 版本并已将 2.0 引用添加到我的项目中,但我仍然收到一条错误消息,告诉我我正在使用 2.5 版本。我的问题很简单:如何让编译器(?)使用 2.0 版本而不是 2.5 版本?

真诚的阿克塞尔

0 投票
2 回答
9673 浏览

c# - 从电子表格中读取行数据

使用工具 SpreadSheetLight我找不到如何读取电子表格文件的行。特别是表 1。

我遇到的两个问题是

  1. 我看不到获得行数的方法
  2. 我无法看到获取列索引这是我的代码

    /li>
0 投票
1 回答
1189 浏览

spreadsheet - 电子表格公式不起作用

我正在使用Spreadsheetlight创建 excel 文档。我需要在特定单元格上使用公式,但它不起作用。编码:

有什么我想念的吗?设置公式如'=E9'作为公式存储在单元格中并在最终文档中工作。任何想法为什么它不起作用?

0 投票
0 回答
1850 浏览

c# - 密码保护生成的 Excel 工作表

我的代码生成一个 OpenXML 电子表格,我想防止修改和删除操作。我的解决方案似乎有效,但我发现在 Excel 中打开它,在“审阅”面板中,我可以按下“取消保护”按钮,并且 Excel 无需询问任何密码即可取消保护选定的工作表。我怎样才能避免这种情况?

0 投票
1 回答
1330 浏览

c# - 如何将早期版本的开放 XML 添加到我的 C# 项目?

我正在使用 Visual Studio 处理 C# 中的应用程序,该应用程序可以操作 xlsx 电子表格。使用开放 XML v2.5 和电子表格灯一切正常,但是保存功能会引发此错误:

无法从程序集中加载类型“DocumentFormat.OpenXml.Spreadsheet.SmartTags”

以防万一,这是我要运行的代码。它是带有两个文本框的表单的按钮单击事件,用于检索一些值并保存其他值:

我查了一下,我猜在开放 XML 版本 2.5 中出了点问题。我想使用 2.0 或更早的版本。当我搜索一个 nuget 包时,唯一可用的是最新版本。如何安装旧版本?有没有办法让我的代码与 2.5 版一起使用?谢谢你。

0 投票
1 回答
169 浏览

c# - 有没有办法将 2 个 excel 文件的内容(包括格式)与 SpreadsheetLight 进行比较?

我有两个用 SpreadsheetLight 生成的 excel 文件。我需要做的是比较两者是否相同。

对于文本文件,这很容易,因为我只会在每个文件上生成一个 MD5 和,但由于这些是 .xlsx 文件,这并不像每个文件生成都会导致文件略有不同那样简单。从我已经看到的情况来看,有一个解决方案可以基本上比较 2 个 excel 文件的内容本身:比较两个 excel 文件的差异

那么与该问题中的基本问题和答案有什么不同:

  1. 我正在使用 SpreadsheetLight 生成两个文件
  2. 我不仅需要比较文件中的数据,还需要比较所有格式,...

所以我的问题是:有没有其他方法可以比较 2 个 excel 文件(尤其是 SpreadsheetLight 涉及)?

0 投票
1 回答
3939 浏览

c# - SpreadsheetLight 处理多个工作表

我正在使用SpreadsheetLight从 WinForms 项目中写入日志文件。我的意图是将日志条目写入同一个文件中的三个工作表,如果可以避免的Interop话,我真的想避免使用它。

我从一个用 Excel 制作的模板文件开始,其中三个工作表预先填充了行标题,并且由于每个工作表都具有相同的基本属性(可以独立变化),我将每个工作表封装在一个类中,其基础看起来像这样:

还有一些在LogSheet类中没有显示的方法来处理将数据写入正确的位置。

这一切似乎工作正常,在调试时,我可以看到实例化的三个工作表中的每一个都new LogSheet(<sheetName>)包含在我向它们写入内容之后它们应该包含的数据。

问题是,当我想保存数据时,我可以侥幸逃脱this.data.Save(),但它只保存一个工作表,而另外两个现在处于不确定状态,因为该Save()方法是终端并关闭 Excel 文件。在其他任何一张纸上尝试该Save()方法,最终都会出现异常"Object reference not set to an object",因为当然,Save()杀死了我的电子表格,并且这些表格不再有任何可参考的内容。结果文件只有我第一次保存的数据。

对于如何解决这个问题,我最好的猜测是不要SLDocument为每张工作表实例化一个新工作表,而是在SLDocument.SelectWorksheet()每次我想写入特定工作表时使用,但我仍然希望将内容封装在 LogSheet 类中,因为其中的所有其他内容都是仍然相关。

还有其他建议吗?

0 投票
1 回答
1607 浏览

c# - 如何使用 SpreadsheetLight 库遍历工作簿中的未知工作表名称

我正在尝试使用 SpreadsheetLight 库遍历工作簿中的未知工作表名称。

使用SLDocument sl = new SLDocument("ModifyExistingSpreadsheetOriginal.xlsx", "Sheet1")示例中的语句仅允许为工作表输入字符串。

是否有某种方法可以引用工作表索引或执行类似于foreach string sh in Workbook.Sheets循环的操作?