c# - 以编程方式更改 Excel 列的格式并防止在数字字段中使用科学记数法,如指数 (E)
问题描述
我正在使用以下代码从 DataSet 生成 Excel
int ColumnsCount;
if (DataTable == null || (ColumnsCount = DataTable.Columns.Count) == 0)
throw new Exception("ExportToExcel: Null or empty input table!\n");
// load excel, and create a new workbook
Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application();
Excel.Workbooks.Add();
// single worksheet
Microsoft.Office.Interop.Excel._Worksheet Worksheet = Excel.ActiveSheet;
object[] Header = new object[ColumnsCount];
// column headings
for (int i = 0; i < ColumnsCount; i++)
Header[i] = DataTable.Columns[i].ColumnName;
Microsoft.Office.Interop.Excel.Range HeaderRange = Worksheet.get_Range((Microsoft.Office.Interop.Excel.Range)(Worksheet.Cells[1, 1]), (Microsoft.Office.Interop.Excel.Range)(Worksheet.Cells[1, ColumnsCount]));
HeaderRange.Value = Header;
HeaderRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.BlanchedAlmond); //ConsoleColor.Yellow;//
HeaderRange.Font.Bold = true;
// DataCells
int RowsCount = DataTable.Rows.Count;
object[,] Cells = new object[RowsCount, ColumnsCount];
for (int j = 0; j < RowsCount; j++)
for (int i = 0; i < ColumnsCount; i++)
Cells[j, i] = (DataTable.Rows[j][i]);
Worksheet.get_Range((Microsoft.Office.Interop.Excel.Range)(Worksheet.Cells[2, 1]), (Microsoft.Office.Interop.Excel.Range)(Worksheet.Cells[RowsCount + 1, ColumnsCount])).Value = Cells;
Worksheet.Columns.AutoFit();
Worksheet.SaveAs(ExcelFilePath);
Excel.Quit();
Console.Write("Excel file saved!");
然而,我的一列显示为1.004E+12
而不是1004000003451
,尽管它是从 sql server 作为 varchar 返回的字符串列。我该如何预防?任何人都可以帮忙吗?
解决方案
最后很简单,只用了 .columns 方法
Worksheet.Columns("A").NumberFormat ="@";
推荐阅读
- php - 我使用函数 dirToArray 收到错误“TypeError(“无法将类作为函数调用”)”
- jquery - jQuery datepicker 日期数组禁用日期不正确
- c# - 如何扩展 CollectionView 的过滤器?
- php - 使用 PHP HMAC SHA1 和 Base64 创建身份验证字符串时遇到问题
- mapbox - 优化和跟踪 Mapbox 地图视图
- go - ssh 以用户身份登录并更改为 root,无需 sudo
- java - Java-按回车键跳过移动文本(使用 thread.sleep 和 sys.out.println)
- reactjs - 反应和 Axios ERR_CERT_AUTHORITY_INVALID
- mysql - SQL Server:选择日期对应于年末的行并计算价格
- php - PHP:在生产服务器上找不到 AWS 开发工具包类