如何将 2007 Excel 工作簿应用程序从 .xls 升级到 .xlsx?

Posted

技术标签:

【中文标题】如何将 2007 Excel 工作簿应用程序从 .xls 升级到 .xlsx?【英文标题】:How to upgrade a 2007 Excel Workbook application from .xls to .xlsx? 【发布时间】:2012-03-28 15:29:07 【问题描述】:

我们有一个我需要维护的 Excel 应用程序,它显示了他在工作表中最多 65536 行的限制。我想将此应用程序升级到 xml 工作表 (.xlsx) 以将此限制提高到 100 万。我的解决方案已经针对 .Net 4.0 并使用 VSTO 4.0。

我尝试了工具 => 选项 => Office 工具 => 项目升级 => office 2007 Open XML 格式,但没有任何反应。

我尝试创建一个新的 Excel 2007 工作簿项目并使用现有的 Excel 文件 (.xls)。它显示一个错误框,指出工作簿包含 activeX 控件。

【问题讨论】:

尝试另存为关闭并重新打开? 是的,但是文件有自定义。当我重新打开文件时,它说它需要修复。我单击确定并重新打开文件,一切都很好。但是当我将它包含在我的解决方案中时,它说它无法运行 activeX 控件,并且我需要先将其删除。 你知道 ActiveX 控件是什么吗?它们与您的代码相关还是您可以删除/替换的其他内容? Active X 的确切错误信息是什么,您使用的是 64 位 excel 吗? 【参考方案1】:

这就是我所做的。我在项目文件夹中打开了 xls 文件,而不是在 bin 文件夹中。我删除了自定义项:准备 -> 属性 -> 文档属性 -> 高级属性 -> 个性化,并删除了 2 个属性 _AssemblyLocation 和 _AssemblyName。我将 xls 文件转换为像 Kiru 写的那样打开 xml (.xlsx)。我保存了文件。然后我在 Visual Studio 中打开了解决方案,并将 .xls 文件的名称更改为 .xlsx。我运行了解决方案,一切都很好! Visual Studio 会将自定义项(自定义代码)添加到文件中,并将其放入 bin 文件夹中。

如果您不先删除自定义,当您尝试构建该文件已被自定义时,它将显示错误。如果您将文件转换为 .xlsx 并说该文件需要修复,请单击确定。可能像我一样对代码进行一些更改,我不得不删除对 System.Linq 不存在的引用。

【讨论】:

【参考方案2】:

您可以在 Excel (.xls) 的后台使用转换,然后将其添加回现有文件。如果您有宏,则将其保存到启用宏的 .xlsm

【讨论】:

以上是关于如何将 2007 Excel 工作簿应用程序从 .xls 升级到 .xlsx?的主要内容,如果未能解决你的问题,请参考以下文章

将参数从 Excel 工作簿中的单元格传递到 SQL 查询

Excel SaveAs 更改活动工作簿 - 如何另存为并保持活动工作簿处于活动状态? [复制]

如何用2007WPS excel 进行数据分析?如何安装啥加载项,

excel2007以后的文件格式

如何将一个 Excel 工作簿中的多个工作表合并成一个工作表?

excel后缀.xls和.xlsx有啥区别