- 題名: csvファイルの読み書き
- 日時: 2005/09/15 17:30:26
- ID: 12803
- この記事の返信元:
- (なし)
- この記事への返信:
- [12804] Re[1]: csvファイルの読み書き2005/09/15 17:56:23
- ツリーを表示
DataGridのまんまをCSVにはくのでしたら、
以前書いた私のつたないソースですが、参考にして下さい。
今思えば、StringBuilderを使うべきでしょうね。
//DataGridをCSVへ変換
static public bool DataGrid2CSV(DataGrid dataGrid, string outFile)
{
StreamWriter sw = null;
string strwk = String.Empty;
try
{
//ファイルが存在していたら上書きで開く
sw = new StreamWriter(outFile, false, Encoding.GetEncoding("Shift-JIS"));
//ヘッダーの書き出し
strwk = String.Empty;
foreach(DataGridColumnStyle myColumnStyle in dataGrid.TableStyles[0].GridColumnStyles)
{
strwk += myColumnStyle.HeaderText + ",";
}
sw.WriteLine(strwk.Substring(0, strwk.Length - 1)); //最後の,を除く
//データの書き出し
strwk = String.Empty;
int rowcnt = ((CurrencyManager)dataGrid.BindingContext[dataGrid.DataSource, dataGrid.DataMember]).Count;
int colcnt = dataGrid.TableStyles[0].GridColumnStyles.Count;
for (int i=0; i < rowcnt; i++)
{
strwk = String.Empty;
for(int j=0; j < colcnt; j++)
{
strwk += @"""" + dataGrid[i, j].ToString() + @""",";
}
sw.WriteLine(strwk.Substring(0, strwk.Length - 1)); //最後の,を除く
}
return true;
}
catch ( Exception ex )
{
string s = ex.Message;
return false;
}
finally
{
sw.Close();
}
}
■No12804に返信(なおこ(・∀・)さんの記事)
> private void button1_Click(object sender, System.EventArgs e)
> :
> }
private void button1_Click(object sender, System.EventArgs e) {
DataTable dt = (DataTable)this.DataGrid1.DataSource;
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"c:\test.txt", False, System.Text.Encoding.GetEncoding(932))) {
try {
foreach (DataRow row in dt.Rows) {
for (int i = 0; i < dt.Rows.Count; i++) {
if (i > 0) {
sw.Write('\t'); //区切り文字の出力
}
sw.Write(row(i));
}
sw.WriteLine();
}
} finally {
if (sw != null) {
sw.Close();
}
}
}
}
分類:[.NET]
はじめまして。KIRIRIと申します。
開発環境 C#.NET2003 です。
現在C#.NET勉強中です。
csvファイルの読込み、編集、保存できるアプリを作成しています。
読み込んだ内容はdataGirdに表示させています。
編集は直接dataGridのセルに記入させようと考えています。
最後の保存をどうしたらいいのかさっぱりわかりません。
どなたか教えていただけないでしょうか?
よろしくお願いします。