2016-04-13 17 views
-2

Ich schrieb ein Programm zum Exportieren der Excel aus Datentabelle in C#. Standardmäßig ist das Zellenformat in General festgelegt. Wie ändere ich das Zellformat durch das Programm? (Beispielformat: Text, Nummer usw.). Hier ist mein CodeSo formatieren Sie die Excel-Zellen beim Export von C#

 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(); 
      } 
     } 

Antwort

0

Es gibt einen guten Artikel ist auf Excel-Zelle Formatierung here

vorgeschlagenen Änderungen an Ihrem Code - Code unten zu beachten ist nicht getestet und basiert auf dem Artikel

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 = "@"; 
Verwandte Themen