1

CloedXMLを使用してdatagridviewをExcelにエクスポートする機能があります。すべて正常に動作しますが、

を使用して、datagridview から datatable に列を追加します

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

これは、私の dgv で Design (Name) である column.Name を使用します。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++;
             }
4

1 に答える 1

0

MSDN の forDataColumnCollection.Add(string columnName, Type type)とそのでは、新しい DataColumnの変数名columnNameを設定するためのものです。つまり、入力として有効な変数名に制限されているため、スペースや特殊文字が機能しない理由が説明されます。、、などがうまくいくと思います。_NameAddress1Zip_Code

typeまた、あなたの例からはわかりませんでしたが、パラメーターの目的を誤解している可能性があると思います。が持つ変数の型を設定するためのものですDataColumntypeof(string)a のデフォルトの型は であるため、DataColumn指定する必要はありませんstring

于 2015-01-07T19:10:45.860 に答える