当我向数据表添加数据时,我正在尝试使用.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();
}
}
有没有办法改变单元格格式?
答案 0 :(得分:1)
设置单元格的数字格式将帮助您将单元格类型转换为文本。
Excel.Worksheet ws = workBook.Worksheets[1];
ws.Range["A2"].NumberFormat = "0";
答案 1 :(得分:0)
// Pull in all the cells of the worksheet
Range cells = xlWorkBook.Worksheets[1].Cells;
// set each cell's format to Text
cells.NumberFormat = "@";
这里有2个链接可以帮助您解决所有问题。 Link 1&amp; Link 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 = "@";
}
}