加载电子表格模板文件不保留表单按钮

Loading spreadsheet template file doesn't retain form button

我在我的应用程序中使用 SpreadsheetGear 2012 加载、修改然后保存模板工作簿的新副本。

我的代码从数据库中获取发票信息并将其格式化为工作簿。然后用户将使用工作簿上的按钮从格式化信息打印发票。

我使用模板工作簿,其中已经提供了一些格式,让我的生活更轻松。原始模板工作簿中包含一个按钮,可在电子表格中运行 VBA 宏。 VBA 宏加载成功,但按钮在新工作簿中消失了。

我尝试纠正问题的一些步骤:我添加了一个新按钮,将 VBA 宏代码从函数更改为子代码,将模板文件保存为启用宏的电子表格 (.xlsm),并将修改后的副本另存为启用宏的电子表格文件。

有没有人遇到过这个问题,你有解决办法吗?

如果您使用的是 Open XML 文件格式 (XLSX/XLSM),那么这是一个已知的限制:

http://www.spreadsheetgear.com/support/help/spreadsheetgear.net.7.0/#SpreadsheetGear_2012_Limitations.html

简而言之,SpreadsheetGear 2012 在使用打开 XML 文件格式时不支持 reading/writing 表单控件(如按钮)以及单元格注释。因此,当文件最初读入 SpreadsheetGear 时,您的按钮将被删除。

如果您想通过 SpreadsheetGear 保存这些对象,您将需要使用支持它们的 XLS (FileFormat.Excel8) 文件格式。