如何将 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 SaveAs 更改活动工作簿 - 如何另存为并保持活动工作簿处于活动状态? [复制]
如何用2007WPS excel 进行数据分析?如何安装啥加载项,