0

我正在使用 excel Interop 将数据导出到 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:\Test\Report.xls",Excel.XlFileFormat.xlXMLSpreadsheet, missing, missing, false, false, Excel.XlSaveAsAccessMode.xlNoChange,  
                missing, missing, missing, missing, missing);  

}
4

1 回答 1

0

Try this number format:

newRange.NumberFormat = "#.##0,00";
于 2013-02-18T21:16:58.057 回答