在C#中导入数据表后如何在同一Excel单元格中保留两位数的两位数字字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C#中导入数据表后如何在同一Excel单元格中保留两位数的两位数字字符串相关的知识,希望对你有一定的参考价值。
我有一些C#代码会自动生成数据表,并将其导入到excel文档中,然后通过CShtml表单通过电子邮件发送到输入的电子邮件地址。列之一是ID列。尽管ID是从1开始的整数,但通过CSHTML格式,它们以字符串形式出现。
我将以下代码用于数据表和excel导入。
DataSet ds = new DataSet("Builder_Report");
DataTable dt = new DataTable("Requested_Data");
DataColumn column;
DataRow row;
var rows_ID = Request.Form.Get("ID");
column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "Review ID";
column.AutoIncrement = false;
column.Caption = "Review ID";
column.ReadOnly = false;
column.Unique = false;
dt.Columns.Add(column);
........................
foreach (var ID in rows_ID)
{
row = dt.NewRow();
row["Review ID"] = ID;
............
dt.Rows.Add(row);
}
ExcelEngine excelEngine = new ExcelEngine();
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook requested_report = application.Workbooks.Create();
//Creating a Sheet
IWorksheet sheet = requested_report.Worksheets.Create("Requested Details");
sheet.ImportDataTable(dt, true, 1, 1);
sheet.UsedRange.WrapText = true;
出于某种原因,对于每个两位数的ID编号,两位数字都会分成两行,例如,对于ID编号10,“ 1”出现在ID列下的一行中,而0出现在其下一行中。我不确定为什么特定的字符串被拆分。这是我拥有的唯一会影响该特定ID列的代码。
答案
如果在调试器中逐步完成此操作,则rows_ID
的数据类型是什么?从您的代码来看,您似乎期望它是一个字符串数组,但是我敢打赌,它像一个普通的旧字符串一样通过。然后,您的foreach循环将遍历字符串中的每个字符。
如果期望它是一个数组,则应将表单字段命名为ID[]
并进行以下更改:
var rows_ID = Request.Form.Get("ID");
到
var rows_ID = Request.Form.Get("ID[]");
以上是关于在C#中导入数据表后如何在同一Excel单元格中保留两位数的两位数字字符串的主要内容,如果未能解决你的问题,请参考以下文章
PHP在本地的数据库中导入EXCEL,一个编号字段假如是97875118326745.导入进去之后,变成了97875118326E+12