在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单元格中保留两位数的两位数字字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何利用excel实现自动换行?

在 Excel 工作表单元格中导出数据

python openpyxl 使用函数在单元格中导入数据

访问 VBA 以拆分 Excel 中的所有合并单元格

PHP在本地的数据库中导入EXCEL,一个编号字段假如是97875118326745.导入进去之后,变成了97875118326E+12

JAVA中导出Excel将全部单元格设置为文本样式,就是导出的没有数据的单元格类型的设置