我正在寻找一种以编程方式将 Excel 报告转换为 XPS 格式的方法。这在 Microsoft 框架中的任何地方都支持吗,还是我们应该寻找第三方工具?
是的,目前我们正在使用 ExcelWriter 以编程方式创建 Excel 报告,并且需要为客户生成 XPS 报告。因此,我们要么直接使用 XPS,这似乎是一个更大的学习曲线,要么将 Excel 报告转换为 XPS。
Office 2007有一个插件,可让您导出为 XPS 或 PDF。通过 Microsoft.Office.interop.Excel 调用 Excel 并导出到 XPS。
从我自己的代码(工作簿是一个实例,但提供完整的命名空间):
Microsoft.Office.Interop.Excel.Workbook.ExportAsFixedFormat(
Excel.XlFixedFormatType.xlTypeXPS,
pdfpath, Excel.XlFixedFormatQuality.xlQualityStandard,
true, true,
fpage, tpage,
false,
oMissing
);
有一篇关于如何执行此操作的MSDN 文章。
我更喜欢 Colin 建议的方法,但您也可以SaveAs
在工作簿上使用FileFormat
常量18
for XPS,如相关问题中所述:
您还可以从 Excel 打印到 XPS。不是技术上的转换,但可能正是您所需要的。
Dim ws As Worksheet
Set ws = ActiveSheet
Call ws.PrintOut(ActivePrinter:="Microsoft XPS Document Writer", _
PrintToFile:=True, PrToFileName:="S:\Temp\Test3.xps")