【问题标题】:How to format the excel cells while exporting from C# [closed]从 C# 导出时如何格式化 excel 单元格 [关闭]
【发布时间】:2016-04-13 07:24:27
【问题描述】:

我用 C# 编写了一个从数据表中导出 excel 的程序。默认情况下,单元格格式在常规中是固定的。如何通过程序更改单元格格式? (示例格式:文本、数字)。 这是我的代码

        private void WriteExcel(DataTable datatable, string FileName)
        {
            StringBuilder SBuild = new StringBuilder();
            using (StreamWriter sw2Excel = File.CreateText(FileName))
            {
                //get the Columns of the DataTable in the 1st Line
                for (int i = 0; i < datatable.Columns.Count; i++)
                {
                    SBuild.Append(datatable.Columns[i].ColumnName + "\t");
                }
                sw2Excel.WriteLine(SBuild.ToString());
                //Fill The Rows To the Excel File
                for (int i = 0; i < datatable.Rows.Count; i++)
                {
                    StringBuilder swRowSb = new StringBuilder();
                    for (int k = 0; k < datatable.Columns.Count; k++)
                    {
                        swRowSb.Append(datatable.Rows[i][k].ToString().Replace(',', ' ') + "\t");
                    }
                    sw2Excel.WriteLine(swRowSb.ToString());
                }
                Microsoft.Office.Interop.Excel.ApplicationClass app = new Microsoft.Office.Interop.Excel.ApplicationClass();
                Microsoft.Office.Interop.Excel.Workbook workBook = app.Workbooks.Open(FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, ",", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                workBook.SaveAs(FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing
                , Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                app.Workbooks.Close();
                app.Quit();
            }
        }

【问题讨论】:

    标签: c# .net excel winforms datatable


    【解决方案1】:

    有一篇关于excel单元格格式的好文章here

    建议对您的代码进行更改 - 请注意以下代码未经测试且基于文章

    Microsoft.Office.Interop.Excel.Worksheet workSheet = (Microsoft.Office.Interop.Excel.Worksheet)workBook.Worksheets.get_Item(1);
    
    Microsoft.Office.Interop.Excel.Worksheet.Range cellRange = workSheet.get_Range("a1", "z256")
    
    //change to text format
    cellRange.NumberFormat = "@";
    

    【讨论】:

      猜你喜欢
      • 2016-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多