Excel单元格作为数字字段使用Excel互操作



我正在使用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";

最新更新