ClosedXML导出列标题为Excel
我有一个函数来导出datagridview使用CloedXML excel。 一切正常,但:
我从datagridview添加列到datatable使用
foreach (DataGridViewColumn column in dgvLoadAll.Columns) { dt.Columns.Add(column.Name); }
这使用column.Name这是我的dgvdevise(名称)。 我想添加column.HeaderText。 当我使用
dt.Columns.Add(column.HeaderText, typeof(string));
它成功添加列标题,但导出不起作用。 它只导出没有特殊字符或空白字符的列。 (“名称”列已导出,但“IUPAC名称”或“Čas”不是,…)。 重命名不是一个选项。
这是导出函数的一部分,负责编写单元格。 只要提醒一下:当我使用column.Name时,它可以100%正常工作。
foreach (int rowindex in rowsselected) { foreach (int columnindex in columnsList) { worksheet.Cell(k+2, j+1).Value = dt.Rows[rowindex] [columnindex].ToString(); j++; } j = 0; k++; }
从MSDN上的DataColumnCollection.Add(string columnName, Type type)
和它们的示例中 ,它的外观如下: columnName
用于设置新DataColumn的variables名称 。 这意味着您仅限于有效的variables名称作为input,这将解释为什么空格和特殊字符不起作用。 我会想象Zip_Code
, Zip_Code
, Zip_Code
等将工作。
另外,我不能从你的例子中知道,但我想你可能会误解type
参数是什么。 用于设置DataColumn
保存的variablestypes 。 您不需要指定typeof(string)
因为DataColumn
的默认types是string
。