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

c# - 在 C# 中使用 SpreadSheetLight 将 DataGridView 内容转换为 Excel

所以我正在尝试将 a 中的内容导出DataGridViewExcel文件中。而对于我来说,我正在使用SpreadSheetLightC#。但就阅读示例代码和教程而言,它们只是演示手动 Excel 内容创建:

但我想要实现的是将整个 DataGridView 转换为 SpreadSheetLight 的 Excel。如果我使用循环并循环 DataGridView 的整个行和列,A, B, C ... AA, BB, CC如果循环使用整数,如何设置列?

希望有人可以让我在这里散步。谢谢

0 投票
0 回答
740 浏览

c# - Spreadsheetlight 保存为工作太慢

我正在使用电子表格库制作一个 winform。当用户单击“保存到 Excel”按钮时,我想在特定文件夹下创建一个具有特定名称的 Excel 文件。到目前为止,我已经尝试了以下代码。

当程序运行并第一次单击该按钮时,创建文件需要 2 分钟。但是在没有关闭程序的情况下,我再次使用不同的文件名单击该按钮,它会立即创建文件。

我搜索了 2 个小时,但我没有找到任何解决方案。有人可以帮忙解决问题吗?

0 投票
2 回答
1154 浏览

c# - 一个变量有一个值,但抛出一个未设置为对象实例的对象引用

我有一个循环 aDataTable并将其保存为Excel Fileusing SpreadSheetLightfor的函数C#

注意到循环DataTable并保存其Excel File输出需要时间,具体取决于 a 有多少单元格、行和列DataGrid,或者从哪里DataTable提取。

在我的函数中使用之前BackgroundWorker,该函数正确执行。当然,唯一的旁注BackgroundWorker是 UI 在代码执行时冻结。通过利用BackgroundWorker我知道我可以通过在另一个线程上处理保存功能来消除这种情况。

但是BackgroundWorker在我的功能中应用后,整个保存功能都会中断。它抛出了我,Object Reference not set to an instance of an Object但我调试和跟踪并确保两个传递的变量都有值,并且不为空。我使用的循环和以前一样,我什至尝试过使用For Loop.

这是我遇到的一个片段。如您所见,下面的窗口显示cellandvalue变量都包含内容。却抛出了空引用。

在此处输入图像描述

此外,这是我的功能的完整代码

最初,在我实现我的BackgroundWorker.

希望我能在这里得到一些散步。

0 投票
1 回答
428 浏览

c# - 使用电子表格灯检测 .XLSX 中#N/A 的正确方法

我有一个 Excel 文件 (.xlsx),我通过 Spreadsheet Light 在 C# 中打开它。

某些单元格可以具有值#N/A(或您的 Excel 的语言版本使用的任何表示形式)作为SVERWEIS(德语,我认为它是VLOOKUP英语)的结果。

通过 SL 检测此单元错误的正确方法是什么?我目前检查单元格的字符串表示是否为“#N/A”,这很可能不是最好的方法。有没有我错过的“正确”检查?

我目前在做什么:

我想做的更像是:

这将消除使用魔术字符串的 hackish 解决方案#N/A

0 投票
1 回答
750 浏览

c# - 如何使用 SpreadsheetLight 创建数据透视表?

我发现使用 Excel 互操作创建数据透视表是可能的,但几乎没有。

我现在正在尝试使用 SpreadsheetLight,希望它可能会更容易,不仅适用于 .xlsx 生成的基础知识,还适用于更高级的东西,例如创建数据透视表。

核心对象 SLDocument 具有一个包含“数据透视表”一词的属性、方法或事件,即:

没有“ AddPivotTable() ”、“ CreatePivotTable() ”等。

有没有办法使用 SpreadsheetLight 创建数据透视表,如果有,它是如何完成的?

更新

SLStyle还有一个PivotButton布尔属性。

更新 2

我最近被介绍到 EPP,并且正在切换到它;SpreadsheetLight 在很多方面都比直接的 Excel 互操作更可取,而 EPP 似乎比 SpreadsheetLight 更可取。

有时,我发现一个更可取的工具似乎几乎是偶然的。一个人在与卷轴斗争后发现抄本,不知道有没有更好的方法,这是相当反复无常甚至是“运气”的问题。

也许应该为开发人员提供一种“消费者报告”,其中包括比较电子表格生成软件、代码比较工具、[软件工具 3]、[软件工具 4]、……[软件工具 N] 的文章;当然,可以比较的不同类型的工具、套件和包将没有尽​​头,这对于许多为最好的或至少比他们目前使用的工具而苦苦挣扎的开发人员来说将是一个很大的帮助.

0 投票
1 回答
306 浏览

c# - C# SpreadSheets光轴

我有一个电子表格,其中包含使用 SpreadsheetLight 库生成的表格,并且该表格中的图表也使用 SpreadsheetLight 生成。当我在 excel 中打开生成的结果并选择图表时,我可以使用 excel 中的按钮更改列的行(我没有英文版的 excel,所以我只是猜测它被称为“更改行和列”)。在生成电子表格时是否可以通过使用 SpreadsheetLight 的代码来执行此操作?或者是否可以告诉 SpreadsheetLight 哪些数据应该在类别上,哪些在数据轴上?

感谢您的任何帮助。

0 投票
1 回答
53 浏览

c# - 为什么 DataTable 中有有效数据时,可视化器中没有数据?

我正在尝试为 SpreadsheetLight 构建一个包装器,该包装器从通过它的任何 .xlsx 文档返回一个 DataSet。但是,我似乎遇到了未将 DataRows 添加到临时 DataTable 的问题。

下面是解析工作表并从中生成 DataTable 的部分代码:

注意:SpreadsheetLight 索引从 1 而不是 0 开始;

现在,我尝试用dt.Rows.Add(),new object[stats.EndColumnIndex -1];以及一个临时变量 from替换,var newRow = dt.NewRow();然后将它们传递到 DataTable 中,但仍然得到相同的最终结果。行对象正确填充,但最后没有传输到 DataTable。

当您在运行时探索对象时,它会在相关属性中显示正确的行数和列数。但是当你在 DataVisualiser 中打开它时,你只能看到列,看不到行。

我一定遗漏了一些明显的东西。

更新

我遍历结果表并将值输出到控制台作为测试。出现所有正确的值,但可视化器保持为空: 在此处输入图像描述

我想现在的问题是,当 DataTable 中有有效数据时,为什么可视化器中没有数据

更新 2 添加了完整的参考方法,包括一组简单的 for 循环,用于循环第一个 DataTable 中的所有行和列。注意:我还尝试将列创建拉出循环,甚至设置数据类型。没区别。注释代码显示原始代码。

0 投票
1 回答
114 浏览

c# - RTL excel 阿拉伯语报告 - C#

在我的应用程序中,我有以下要求。

将生成英文和阿拉伯文的 Excel 报告。使用英语(或任何其他非阿拉伯语)的报告应以从左到右的方向打开。在阿拉伯语中,它应该从右向左打开。

我已经使用 C# 创建了 excel 文档。现在的问题是:

即使在 Excel 的阿拉伯语包中,我在代码中生成的阿拉伯语报告也以从左到右的方向打开。

我正在使用 SpreadSheetLight

0 投票
2 回答
712 浏览

c# - 电子表格灯 c#

电子表格灯是否具有在Right-to-Left Direction中创建 excel 工作表的任何功能。也就是说,excel表格的右侧应该出现 列。

0 投票
1 回答
2403 浏览

c# - 在 SpreadSheetLight 中获取 Excel 工作表中所有列的名称

我正在尝试使用电子表格中的列名称填充组合框。我正在使用电子表格灯库。我可以使用以下代码设置单元格值,其中A引用列名并1引用行名。(我对吗?)

但是如何获取所有工作表中所有列的名称?