我正在使用excel互操作导出数据到excel,我想使一些范围作为数字格式。比如D范围或E范围
eg: 112.36 or 400.00 it will be upto two decimal places
和导出到excel后,它应该显示的值为400.00,而不是像400。
My code is below,
try
{ int column = 0,row = 0;
//Start Excel and get Application object.
oXL = new Excel.Application();
oXL.Visible = false;
//Get a new workbook.
oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));
oSheet = (Excel._Worksheet)oWB.ActiveSheet;
oRng = oSheet.UsedRange;
object missing = System.Reflection.Missing.Value;
for (int k = 1; k <= dt.Columns.Count; k++)
{
oRng.Cells.set_Item(1, k, dt.Columns[k-1].ToString());
}
foreach (DataRow r in dt.Rows)
{
row++;
column = 0;
foreach (DataColumn c in dt.Columns)
{
oXL.Cells[row + 1, ++column] = r[c.ColumnName];
}
}
Excel.Range newRange = oSheet.get_Range("D2", "D"+oSheet.UsedRange.Columns.Count);
newRange.NumberFormat="#,##";
oWB.SaveAs(@"D:TestReport.xls",Excel.XlFileFormat.xlXMLSpreadsheet, missing, missing, false, false, Excel.XlSaveAsAccessMode.xlNoChange,
missing, missing, missing, missing, missing);
}
试试这个数字格式:
newRange.NumberFormat = "#.##0,00";