vb.net - 在没有实际 Excel 的情况下使用 Microsoft.Office.Interop.Excel?

标签 vb.net excel pdf

我在 VB.Net 中使用 Microsoft.Office.Interop.Excel 以便将 .xls 文件导出为 .pdf 文件。这是我能找到的唯一方法,无需依赖在运行的计算机上安装第三方软件或使用昂贵的 Visual Studio 附加组件。该方法需要通过代码打开excel并保存文件。

我的问题是我只有 Microsoft Office 的试用版,因为我从未真正使用过它。嗯,我可以打开它的次数限制已经达到,因为我已经运行该程序足够多次用于调试目的,现在我无法继续开发该应用程序。是否有 Visual Studio 的开发工具包可以提供此功能所需的 API,而无需实际安装 Office?我不需要 Microsoft Office,因此我不想仅仅为了开发和测试应用程序而购买完整版本。

我查看了一些选项,例如 this ,但是 .xls 中有一些非常具体的格式需要保持完整才能转换为 .pdf,如果我使用中间格式,这似乎不起作用。

我还阅读了一些有关 openOffice API 的内容,但是它与 .Net 兼容吗?如果是这样,有人可以向我指出一个解释如何在 .Net 中使用 API 的教程吗?如果可能的话,特别是 VB,但我可以使用 C# 代码。

这是我正在尝试做的示例,以防它对建议有所帮助:

        Dim fileName As String = AppDomain.CurrentDomain.BaseDirectory & "LOA " & compName.Text & ".xls"
        Dim xlsApp = New Microsoft.Office.Interop.Excel.Application
        xlsApp.ScreenUpdating = False
        Dim xlsBook As Microsoft.Office.Interop.Excel.Workbook
        Dim paramExportFormat As XlFixedFormatType = XlFixedFormatType.xlTypePDF
        Dim paramExportQuality As XlFixedFormatQuality = XlFixedFormatQuality.xlQualityStandard
        Dim paramOpenAfterPublish As Boolean = False
        Dim paramIncludeDocProps As Boolean = True
        Dim paramIgnorePrintAreas As Boolean = True
        Dim paramFromPage As Object = Type.Missing
        Dim paramToPage As Object = Type.Missing
        xlsBook = xlsApp.Workbooks.Open(fileName, UpdateLinks:=False, ReadOnly:=False)
        xlsBook.ExportAsFixedFormat(paramExportFormat, AppDomain.CurrentDomain.BaseDirectory & "LOA " & compName.Text & ".pdf", paramExportQuality, paramIncludeDocProps, paramIgnorePrintAreas, paramFromPage, paramToPage, paramOpenAfterPublish)
        xlsBook.Close(SaveChanges:=False)
        xlsApp.Quit()

最佳答案

您提出的问题暗示了一种误解 - Microsoft.Office.Interop.Excel 程序集不包含处理代码。它本质上是一个元数据程序集,告诉 .NET 如何与 Excel 对话。在未安装 Excel 的情况下尝试进行任何处理时,它是没有用的。

有相当多的免费库可以创建和操作 Excel 文件 - 您指出的 Stackoverflow 问题有一些,其他库位于 CodePlex 上。如果您需要对具有特殊格式要求的工作表进行计算或渲染,您可能最好研究以最低价格获取 Excel 许可证的选项,或者迁移到不同的体系结构。

关于vb.net - 在没有实际 Excel 的情况下使用 Microsoft.Office.Interop.Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5845770/

相关文章:

VB.net Express 2010 评估?

mysql - 使用 vb.net 窗口窗体中的复选框列表更新数据库中列的值

java - 如何从 Assets 文件夹创建文件对象?

html - 当我尝试将 WebView 保存到 PDF 时,为什么 NSPrintOperation 会创建一个空 PDF?

c# - 在 .NET 中仅使用没有相应字段的属性的缺点?

vb.net - 检查表单是否在所有屏幕的范围内

vba - 在不带参数的自定义函数中添加两个单元格

excel - 如何从谷歌表格单元格中读取评论?

vba - Excel VBA : Can I simply extend a range by one?

c# - 创建 PDF 文件?