2013-08-06 47 views
2

我有一個數據表(計算結果),用戶應該能夠導出到不同的格式。我使用Interop.Excel來準備一個包含數據的表格,並使用數據並使用視覺格式(字體,顏色等)和NumberFormat對其進行格式化。例如:問題與NumberFormat在ExportAsFixedFormat

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"Number"或類似物。這並不能解決問題。

我也試圖保護Range的細胞或excelWorkSheet。這也不能解決問題。

有人建議調用VBA宏/子通過C#但一些尋找到這後,我得到的印象是,它不是一個非常簡單的(或穩定的)路徑。

我正在找尋通過Interop.Excel或以其他方式解決此問題的任何幫助。

LUCN

回答

0

一些測試後,它似乎很清楚,我在我的評論命名的屬性必須設置爲falseMicrosoft.Office.Interop.Excel.Application.ActiveWindow.DisplayFormulas = false;

這不是明顯的,爲什麼這會影響到出口到其他格式,如*.pdf但這很明顯,並且設置.DisplayFormulas = false可以解決問題。

希望這有助於某人。