我在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()
答案 0 :(得分:4)
您提出的问题意味着误解 - Microsoft.Office.Interop.Excel程序集不包含任何处理代码。它本质上是一个元数据程序集,告诉.NET如何与Excel通信。在没有安装Excel的情况下尝试进行任何处理都没有用。
有很多免费的库可以创建和操作Excel文件 - 你指向的Stackoverflow问题有一些,其他的都在CodePlex上。如果您需要计算或呈现具有特殊格式要求的工作表,您可能最好调查获得Excel许可证或转移到其他架构的最低价格选项。
答案 1 :(得分:2)
您可以安装Microsoft Primary Interop Assemblies Package。你可以找到它here
但要小心。不同的办公室版本有不同的包。
答案 2 :(得分:1)
尝试此主题提示:https://stackoverflow.com/questions/769246/xls-to-pdf-conversion-inside-net - Aspose或open office
答案 3 :(得分:1)
试试Codeplex。它可能会帮助你。
NPOI可以: