如何在导出Excel文件时指定单元格格式为“文本”

我试图通过使用.ToString()将数据添加到数据表时导出Excel文件。 Excel文件单元格格式不是文本,而是General格式。 这是我的代码。

 public static void CreateExcel(string filename,System.Data.DataTable table) { if (filename != "") { Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.DisplayAlerts = false; if (xlApp == null) { return; } Workbook xlWorkBook; Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.get_Item(1); int Row = table.Rows.Count; int Column = table.Columns.Count; for (int i = 0; i <= Column - 1; i++) { xlWorkSheet.Cells[1, i + 1] = table.Columns[i].ToString(); } for (int i = 0; i <= Row - 1; i++) { for (int j = 0; j <= Column - 1; j++) { xlWorkSheet.Cells[i + 2, j + 1] = table.Rows[i][j].ToString(); } } xlWorkBook.SaveAs(@filename, Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook, System.Reflection.Missing.Value, misValue, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlUserResolution, true, misValue, misValue, misValue); xlWorkBook.Close(); xlApp.Quit(); Marshal.FinalReleaseComObject(xlWorkSheet); Marshal.FinalReleaseComObject(xlWorkBook); Marshal.FinalReleaseComObject(xlApp); GC.Collect(); } } 

有什么方法可以改变单元格格式吗?

设置单元格的数字格式将帮助您将单元格types转换为文本。

 Excel.Worksheet ws = workBook.Worksheets[1]; ws.Range["A2"].NumberFormat = "0"; 
  // Pull in all the cells of the worksheet Range cells = xlWorkBook.Worksheets[1].Cells; // set each cell's format to Text cells.NumberFormat = "@"; 

这里有两个链接,可以帮助你在任何情况下。 链接1和链接2

在你的情况下:

 for (int i = 0; i <= Row - 1; i++) { for (int j = 0; j <= Column - 1; j++) { xlWorkSheet.Cells[i + 2, j + 1] = table.Rows[i][j].ToString(); //It will set each cell while iterates, //I suggest, if its for all column, then set it for the excel sheet. //or if you have a known range, then set for the range. xlWorkSheet.Cells[i + 2, j + 1].NumberFormat = "@"; } }