我有一个数据表(计算结果),用户应该能够导出为不同的格式。我Interop.Excel
用来准备一个包含数据的表格,并使用数据并使用视觉格式(字体、颜色等)和NumberFormat
. 例子:
cellRange.NumberFormat = "#,##0";
当我将表格保存为Excel文件时,导出到.xlsx和.xls时所有格式都可以:
excelWorkBook.SaveAs(exportFileName, Excel.XlFileFormat.xlOpenXMLWorkbook); // for .xlsx
excelWorkBook.SaveAs(exportFileName, Excel.XlFileFormat.xlExcel8); // for .xls
我还想让用户能够从应用程序中将此表导出为.pdf和.xps,而无需打开 Excel 文件。当我准备好表时Interop.Excel
,我尝试将同一个表导出为这些文件格式:
excelWorkBook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF,exportFileName); // for .pdf
excelWorkBook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypeXPS,exportFileName); // for .xps
除了所有NumberFormats
都丢失导致双精度长十进制值之外,这两种方法都会产生良好的文档。这不适合客户的数据摘要。(颜色和字体与.pdf和.xps中的定义保持一致。)
我已经尝试过设置.Style
和.Styles
to"Number"
等。这并不能解决问题。
我也尝试过保护Range
细胞或excelWorkSheet
. 这也不能解决问题。
有人建议通过C#调用VBA 宏/子,但经过一番研究,我觉得这不是一条非常直接(或稳定)的路径。
我正在寻求通过Interop.Excel
或以其他方式解决此问题的任何帮助。
朗讯