2016-02-15 72 views
0

我正在將數據從DataGridView導出到Excel。一切都很正常,但是當在列的數據有,例如:000115455,Excel將忽略了「0」和插入115455.我接下來嘗試:將Excel列設置爲文本(將DataGridView中的數據導出到Excel)

  • 格式DataTable中列前填寫的DataGridView
  • 鑄造數據從數據庫檢索爲VARCHAR。
  • 填充後在DataGridView中格式化該列。
  • 在我的方法中使用Range.EntireColumn,Range.Cells.NumberFormat和其他方法。

這一切都行不通!

下面是導出到Excel中,並保存文件

ExcelApp = new Microsoft.Office.Interop.Excel.Application(); 
ExcelLibro = ExcelApp.Workbooks.Add(misDatos); 
ExcelHoja = (Excel.Worksheet)ExcelLibro.Worksheets.get_Item(1); 
Excel.Range rangoHoja = (Excel.Range)ExcelHoja.Cells[1, 1]; 
rangoHoja.Select(); 
ExcelHoja.PasteSpecial(rangoHoja, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true); 
ExcelLibro.SaveAs(opcionSFD.FileName, 
            Excel.XlFileFormat.xlWorkbookNormal, 
            misDatos, 
            misDatos, 
            misDatos, 
            misDatos, 
            Excel.XlSaveAsAccessMode.xlExclusive, 
            misDatos, 
            misDatos, 
            misDatos, 
            misDatos, 
            misDatos); 

       ExcelApp.DisplayAlerts = true; 
       ExcelLibro.Close(true, misDatos, misDatos); 
       ExcelApp.Quit(); 

我可以做什麼的代碼?

回答

0

這個工作對我來說:

呼叫ExcelHoja.PasteSpecial(...)之前加上此行:

rangoHoja.NumberFormat = "@"; 

此設置單元格的格式文本

... 
rangoHoja.Select(); 
rangoHoja.NumberFormat = "@"; //Added Line  
ExcelHoja.PasteSpecial(...); 
... 

希望這有助於