【问题标题】:Installing office 365 components on computers without office 365在没有 Office 365 的计算机上安装 Office 365 组件
【发布时间】:2019-08-23 05:22:44
【问题描述】:

如何在未安装 Office 365 的计算机上使用 Office 365 COM 组件?

我有一个将数据从 SQL 服务器导入 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

我对如何解决这个问题没有任何想法,我很感谢大家提出的任何建议。

【问题讨论】:

  • 导入的意思并不完全清楚。构建可由 Excel 或任何其他数量的程序读取的 .CSV 文件相当容易。如果您想像现在这样操作 Excel 对象模型,您需要安装 Office 或至少安装 Excel。 Microsoft 确实为其文件格式制定了规范,以便您可以编写代码以另存为 .XLS 或 .XLSX,但这需要大量工作。以 .CSV 格式编写并不难。

标签: vb.net com office365


【解决方案1】:

可以在未安装 Office 的计算机上编译使用 Office 自动化的程序。只需找到您需要引用的 .dll 和/或 .tlb 文件,将它们复制到您的编译机器上即可。

无法在未安装 Office 的计算机上运行使用 Office 自动化的程序。期间。

一般来说,直接生成 Office 文档比自动化 Office 构建文档更安全。自动化 Office 就像假装自己是一个用户——你必须安装软件,运行它,然后按照用户在使用软件时执行的相同步骤来移动它。生成文档只是生成一组数据,从概念上讲,它们与 CSV 或任何哑文本文件没有任何不同。

如果您打算在服务器或其他非交互式环境中执行此操作,则绝对应该直接生成 Office 文档,而不是自动生成。几十年来,微软一直在警告我们服务器自动化的许多(许多)陷阱。没有安全的方法可以做到这一点。期间。

要生成 Office 文档,我始终推荐使用 OpenXML SDK,这是专门用于此目的的 Microsoft 工具集。 2.9 版有一个NuGet package,我建议使用它。还有 OpenXML Productivity Tool,它允许您打开任何 Office 文档并查看以编程方式构建该文档所需的文字代码。我知道获取此工具的唯一方法是通过the download link for version 2.5 of the SDK(单击下载按钮,您将可以选择下载 SDK 和/或生产力工具)。

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2019-07-29
    • 2023-03-19
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多