
いくつかこまごまとしたものをまとめてご質問させて頂きますが,
1)csvファイルを読込,ある処理を行おうとすると
「列の FillWeight 値の合計が 65535 を超えることはできません。」
というエラーが出て処理が出来ません.このエラーの解消法を教えて頂けないでしょうか?
2)画像のように読み込んだヘッダー部分が文字化けしてしまいます.
こちらの解消法をご教授頂けないでしょうか?
3)csvのすべてのデータをdatagridviewに表示させたいのですが,2列分しか表示されません.
下記に2)とも関連したプログラムを記載いたします.どなたかご教授願えないでしょうか?
string strName = "xxx.csv"; // 仮のファイル名
string strPath = "c:/csv/"; // 仮のディレクトリ名
OpenFileDialog sfd = new OpenFileDialog();
sfd.InitialDirectory = strPath;
sfd.FileName = strName;
sfd.Filter = "CSVファイル(*.csv)|*.csv|xlsファイル(*.xls)|*.xls|xlsxファイル(*.xlsx)|*.xlsx|テキスト(*.txt)|*.txt";
sfd.Title = "開くファイルを選択してください";
sfd.RestoreDirectory = true;
sfd.CheckFileExists = false;
if (sfd.ShowDialog() == DialogResult.OK)
{
// CSVファイルオープン
System.IO.StreamReader sw = new System.IO.StreamReader(sfd.FileName);
// CSVファイルの各セルをDataGridViewに表示
int r = 0;
String lin = "";
do
{
lin = sw.ReadLine();
if (lin != null)
{
if (r == 0)
{
dataGridView1.Columns.Add("clmName1", "日付");
this.dataGridView1.Columns.Add("Time", "データ");
}
this.dataGridView1.Rows.Add();
String[] csv = lin.Split(',');
for (int c = 0; c <= csv.GetLength(0) - 1; c++)
{
if (c < this.dataGridView1.Columns.Count)
{
this.dataGridView1.Rows[r].Cells[c].Value = csv[c];
}
}
r += 1;
}
} while (lin != null);
// CSVファイルクローズ
sw.Close();
tabControl1.SelectedIndex = 1;
}

No.3
- 回答日時:
この書き方なら エンコードによる文字化けではないように思えます
30列追加ということであれば CSVの読み込みループの中で列の追加というより
読み込みループに入る前に 列の設定をする方向だと思います
if (sfd.ShowDialog() == DialogResult.OK)
{
// ここで列の追加を行う
dataGridView1.Columns.Add("clmName1", "日付");
for ( int n = 1; n < 31; n++ )
{
String ss1 = String.Format("Time{0}", n );
String ss2 = String.Format("データ{0}", n );
this.dataGridView1.Columns.Add(ss1,ss2);
}
// ココまでを追加
// CSVファイルオープン
System.IO.StreamReader sw = new System.IO.StreamReader(sfd.FileName);
// CSVファイルの各セルをDataGridViewに表示
int r = 0;
String lin = "";
do
{
lin = sw.ReadLine();
if (lin != null)
{
// ここはコメントアウト
// if (r == 0)
// {
// dataGridView1.Columns.Add("clmName1", "日付");
// this.dataGridView1.Columns.Add("Time", "データ");
// }
//ココまで
this.dataGridView1.Rows.Add();
String[] csv = lin.Split(',');
for (int c = 0; c <= csv.GetLength(0) - 1; c++)
{
if (c < this.dataGridView1.Columns.Count)
{
this.dataGridView1.Rows[r].Cells[c].Value = csv[c];
}
}
r += 1;
}
} while (lin != null);
// CSVファイルクローズ
sw.Close();
tabControl1.SelectedIndex = 1;
}
No.2
- 回答日時:
文字化けが Shift-JISによるものなら
System.IO.StreamReader sw = new System.IO.StreamReader(sfd.FileName);
を エンコードつきのコンストラクターに変えましょう
System.IO.StreamReader sw = new System.IO.StreamReader(sfd.FileName, System.Text.Encoding.GetEncoding(932));
といった具合です
この回答への補足
ありがとうございます.
追記で保存の場合でも同じように定義してやれば
文字を文字化けさせずに保存できるのでしょうか?
参考に同じように保存する際に定義しているプログラムを書きに記載いたします.
ご教授よろしくお願いいたします.
// ファイルを指定してインスタンス作成
System.IO.StreamWriter sw = new System.IO.StreamWriter(sfd.FileName);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- PHP 値の取り出し方について教えて下さい。 1 2023/03/31 13:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロから出力されるcsvのダブ...
-
【C#】パス名で無効な文字
-
cvs?って何?
-
PHP.laravelについて
-
C# datagridview csv 読込
-
c#でcsvから指定の1行だけを読...
-
csvファイルでの日付設定「yyyy...
-
バッチでCSVを処理する時、空の...
-
エクセルvbaでdocuworksprinter...
-
C++でのフォルダ削除ができま...
-
サブフォルダから部分一致のエ...
-
エクセルのプロパティーでセキ...
-
PDFファイルについて
-
ExcelブックをGoogleスプレッド...
-
MySQLにおいてデータフォルダの...
-
ExcelのVBAでフォルダ指定がで...
-
C# でファイルのタイムスタンプ...
-
パワーポイントの文字数
-
同じファイル名 上書きしないフ...
-
VBAでの共有パスにつきまして
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
バッチでCSVを処理する時、空の...
-
【C#】パス名で無効な文字
-
csvファイル 項目数取得
-
マクロから出力されるcsvのダブ...
-
CSV形式での保存時に”文字列...
-
エクセルVBA 大容量CSVファイル...
-
csvファイルでの日付設定「yyyy...
-
【ExcelVBA】UTF-8の文字コード...
-
CSVファイルの項目行を削除...
-
【エクセルVBA】お願いします。...
-
csvファイルを列数ごとに分割す...
-
VBAでCSVファイルのインポート...
-
【エクセル マクロ】読み込ん...
-
エクセル形式のファイルの読み込み
-
巨大なCSVの加工(指定列のみの...
-
Windowsのバッチファイルについ...
-
COBOLでCSVをインプットにして...
-
CSV出力して、MS/EXCELで開くと...
-
CSV形式のファイルを読み込んで...
おすすめ情報