在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[]");

相关内容

  • 没有找到相关文章

最新更新