将“Excel 列”设置为“文本”(将数据网格视图中的数据导出到 Excel)
本文关键字:数据 Excel 视图 数据网 设置 文本 网格 | 更新日期: 2023-09-27 18:34:51
我正在将数据从DataGridView导出到Excel。一切正常,但是当列中的数据具有例如:000115455时,Excel会忽略"0"并插入115455。我接下来尝试:
- 在填充数据网格视图之前设置数据表中列的格式
- 将从数据库中检索的数据转换为 VARCHAR。
- 在"填充"后设置数据网格视图中的列的格式。
- 在我的方法中使用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();
我能做什么?
这对
我有用:
在呼叫ExcelHoja.PasteSpecial(...)
之前添加以下行:
rangoHoja.NumberFormat = "@";
这会将单元格的格式设置为"文本"。
...
rangoHoja.Select();
rangoHoja.NumberFormat = "@"; //Added Line
ExcelHoja.PasteSpecial(...);
...
希望这有帮助