2017年5月8日月曜日

【C#】CSVファイル作成時の、エラーについて

C#のプログラムで、CSVファイル作成プログラムを作成しました。
しかし、作成したCSVファイルを開くと、エラーダイアログが表示されました。



※SYLKファイルは"Symbolic Link File"の略でそうです。

調べてみると、ヘッダー行出力時に、IDという文字を出力すると、発生するようです。
Excelの仕様による問題で、
CSVファイルの先頭データが「ID」または「ID_xxxx」で始まる場合、SYLKファイルとして解釈して、CSVファイルをSYLKファイルとして読み込むため、エラーが発生
だそうです。

そこで、ID文字をidにしたらうまくいきました。


                    foreach (System.Data.DataRow schemaDr in schemaDt.Rows)
                    {
                        string columnName = schemaDr["ColumnName"].ToString().Trim();

                        columnName = schemaDr["ColumnName"].ToString();

                        if (columnName == "ID")
                        {
                            columnName = "id";
                        }

                        strHeader = strHeader + columnName + ",";
                    }
                    strHeader = strHeader.Remove(strHeader.Length - 1);
                    sw.WriteLine(strHeader);


その他に、以下の手段もできるそうです。
・テキストの最初の行の先頭にアポストロフィを挿入する。
・データの先頭行に空白行を挿入する


参考URL】
http://www.marvel.co.jp/htm/Technic/Technic/database/7.html
http://www.yamamototakashi.com/soft/d2/manual/HLP000206.html

0 件のコメント:

コメントを投稿