ClosedXML 将列标题导出到 excel [C#]

本文关键字:excel 标题 ClosedXML | 更新日期: 2023-09-27 18:36:34

我有一个函数,可以使用CloedXML将datagridview导出到excel。一切正常,但是:

我使用

            foreach (DataGridViewColumn column in dgvLoadAll.Columns)
            {
                dt.Columns.Add(column.Name);
            }

这使用列。名称是我的dgv中的设计(名称)。我想添加列。标题文本。当我使用

            dt.Columns.Add(column.HeaderText, typeof(string));

它成功地添加了列标题,但导出不起作用。它只导出没有特殊字符甚至空白字符的列(导出"名称"列,但"IUPAC 名称"或"Čas"不是,...重命名不是一种选择。

这是负责写入单元格的导出函数部分。提醒一下:当我使用列时,它可以 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++;
             }

ClosedXML 将列标题导出到 excel [C#]

从 MSDN 上的外观来看,DataColumnCollection.Add(string columnName, Type type) 和他们的示例中,columnName用于设置新 DataColumn 的变量名称。这意味着您只能使用有效的变量名称作为输入,这可以解释为什么空格和特殊字符不起作用。我想_NameAddress1Zip_Code等都可以。

另外,我无法从您的示例中看出,但我认为您可能误解了type参数的用途。它用于设置DataColumn持有的变量类型。您不需要指定typeof(string)因为DataColumn的默认类型是 string