如何将xml架构/devise文件添加到Excel Interop?
我正在用excel interop创build一个使用数据表的excel文件
Price Profit/Loss% 250.8982989 0.04301071
我有一个模式文件具有devise的细节1)使所有标题粗体2)列定义(天气,string,百分比)
我在快速报表导出中使用此文件,但因此我必须使用interop excel导出有一种方法,我可以添加该模式文件
Excel.Application excelApp = new Excel.Application(); //Create an Excel workbook instance and open it from the predefined location Excel.Workbook excelWorkBook = excelApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); //Add a new worksheet to workbook with the Datatable name Excel.Worksheet excelWorkSheet = (Excel.Worksheet)excelWorkBook.Sheets.Add(); for (int i = 1; i < table.Columns.Count + 1; i++) { excelWorkSheet.Cells[1, i] = table.Columns[i - 1].ColumnName; } for (int j = 0; j < table.Rows.Count; j++) { for (int k = 0; k < table.Columns.Count; k++) { excelWorkSheet.Cells[j + 2, k + 1] = table.Rows[j].ItemArray[k].ToString(); } } excelWorkBook.SaveAs(@"D:\sample excel.xls"); excelWorkBook.Close(); excelApp.Quit();
我想以粗体显示这个值,格式为% 0.04301071
使此值粗体和圆形250.8982989
这一切信息将被存储在我想要加载该文件的模式文件中
否则我想按照datatable中的列数据types加载该单元格
我努力了 :-
clmnrange.NumberFormat = (Object)table.Columns[k - 1].DataType;
但它正在引发一个例外
问候EP
如上所述评论 :
NumberFormat属性接受使用Excel格式化语法的string。 例如格式化为百分比(最多)小数点后8位是“0。########%”
以下是其他人提供的示例,展示如何实现您所描述的numberingFormattypes:
WorkbookStylesPart sp = workbookPart.AddNewPart<WorkbookStylesPart>();
创build一个样式表:
sp.Stylesheet = new Stylesheet();
创build一个numberingFormat:
sp.Stylesheet.NumberingFormats = new NumberingFormats(); // #.##% is also Excel style index 1 NumberingFormat nf2decimal = new NumberingFormat(); nf2decimal.NumberFormatId = UInt32Value.FromUInt32(3453); nf2decimal.FormatCode = StringValue.FromString("0.0%"); sp.Stylesheet.NumberingFormat.Append(nf2decimal);