簡體   English   中英

將ClosedXML導出列標題轉換為excel [C#]

[英]ClosedXML export column header to excel [C#]

我具有使用CloedXML將datagridview導出到excel的功能。 一切正常,但是:

我使用以下方式將列從datagridview添加到datatable

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

這使用column.Name在我的dgv中是Design(名稱)。 我想添加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的變量名稱 這意味着您只能使用有效的變量名作為輸入,這將解釋為什么空格和特殊字符不起作用。 我可以想象_NameAddress1Zip_Code ,等會工作。

另外,我無法從您的示例中看出來,但我認為您可能會誤解type參數的用途。 它用於設置DataColumn保存的變量類型 您不需要指定typeof(string)因為DataColumn的默認類型是string

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM