
いくつかこまごまとしたものをまとめてご質問させて頂きますが,
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ランキング
-
プログラミングについて。 1つ...
-
gccを行ってもexeファイルが生...
-
c言語
-
visual studio 2022でのC#プロ...
-
C# DatagridviewにExcelシート...
-
mallocについて
-
C言語って古いですか?
-
C言語関数違いについて。
-
逆コンパイルと逆アセンブルの...
-
プログラムの実行時に'<'でリダ...
-
パソコン
-
CPUが16bitでも32bitOSでコンパ...
-
Python、プログラミングについ...
-
だれがとけるの?
-
バッチファイルで以下のような...
-
Notepad++の関数リスト表示の変...
-
VisualStudio2022でC言語プログ...
-
License='MIT' ってなんでmitな...
-
C言語 ストリームについて。
-
c言語でイベントフラグを使った...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c言語
-
gccを行ってもexeファイルが生...
-
大量のデータを読み込んで表示...
-
visual studio 2022でのC#プロ...
-
C++でデスクトップGUIアプリ開...
-
【C言語】全角文字の配列を、全...
-
Windows Formアプリからコンソ...
-
VisualStudio2022でC言語プログ...
-
C#でログファイルにファイルパ...
-
C#でTreeViewのCheckBoxのサイ...
-
c#のTLS1.2での通信について
-
VisualStudioでC++クラスを追加...
-
C言語について。
-
int16_t の _t は何?
-
プログラマー達は何故、プログ...
-
逆コンパイルと逆アセンブルの...
-
C言語の関数のextern宣言
-
c言語でイベントフラグを使った...
-
C言語 関数、変数の宣言について
-
[C言語]fputsとfprintfの違い
おすすめ情報