如何在未安装Office 365的计算机上使用Office 365 COM组件?
我有一个将数据从SQL Server导入Excel的系统,实际上非常简单。也许唯一的问题是我使用循环分配放置数据的单元格。
为什么我得出结论,我需要Office 365组件?
首先,我使用一台装有Office 365的计算机,可以将数据导入到Excel工作表中。
然后,我在没有Office 365的计算机上重新编译了相同的代码,我只能在excel表上获得几行内容。有趣的是,这些行是一致的,仅出现在第77行,但是数据的导入方式与其他行相同。
我还尝试了一个空白文档,以查看格式是否有问题,但是导入仍然没有成功。
我也尝试将excel类型从.xlsx
更改为.xls
,但结果仍然不成功。
然后我在没有Office 365的计算机上重新编译了代码,然后在其中安装了Office 365,代码现在可以正常工作了!在同一台计算机上卸载Office 365之后,该代码不再起作用。
我试图复制并粘贴Office 365组件,我认为它有助于成功上传(MSO.DLL
),该组件位于
C:\Program Files\Microsoft Office\root\vfs\ProgramFilesCommonX86\Microsoft Shared\OFFICE16.
在没有Office 365的计算机上使用时,代码不起作用。
如果您想知道导入期间使用的是哪种代码,请输入以下代码:
For e = 0 To dt.Columns.Count - 1
objWorksheet.Cells(MyRow1, MyColumn) = dt.Rows(a).Item(e).ToString
MyColumn = MyColumn + 1
Next
我对应该如何完成此工作的想法不多了,我感谢提出的任何建议。
答案 0 :(得分:0)
您可以编译在未安装Office的计算机上使用Office自动化的程序。只需找到您需要引用的.dll和/或.tlb文件,然后将它们复制到编译机上即可。
您无法在未安装Office的计算机上运行使用Office自动化的程序。期间。
通常来说,直接生成Office文档比使Office自动化构造文档更安全。自动化Office就像假装自己一样-您必须安装软件,运行它,然后按照用户使用该软件时所执行的相同步骤来移动它。从概念上讲,生成文档只是生成一组数据,这些数据与CSV或任何哑文本文件没有什么不同。
如果您打算在服务器或其他非交互式环境上执行此操作,则绝对应该直接生成Office文档,而不是自动生成。几十年来,Microsoft一直在警告我们有关服务器上许多自动化陷阱的问题。没有安全的方法可以做到这一点。期间。
要生成Office文档,我总是建议使用OpenXML SDK,这是专门用于此目的的Microsoft工具集。我建议使用2.9版的NuGet package。还有一个OpenXML生产力工具,它使您可以打开任何Office文档,并查看以编程方式构建该文档所需的文字代码。我知道获得此工具的唯一方法是通过the download link for version 2.5 of the SDK(单击“下载”按钮,然后将为您提供下载SDK和/或生产力工具的选项)。