CSVの値でコンマで文字列をエクスポートする方法は?
-
28-10-2019 - |
質問
コードを使用してCSVファイルでDatagridViewレコードをエクスポートします。
using (StreamWriter myFile = new StreamWriter(filename, false, Encoding.Default))
{
string sHeaders = "";
for (int j = 0; j < dGV.Columns.Count; j++)
{
if (dGV.Columns[j].Visible)
{
sHeaders = sHeaders.ToString() + dGV.Columns[j].HeaderText + ", ";
}
}
myFile.WriteLine(sHeaders);
// Export data.
for (int i = 0; i < dGV.RowCount; i++)
{
string stLine = "";
for (int j = 0; j < dGV.Rows[i].Cells.Count; j++)
{
if (dGV.Columns[j].Visible)
{
stLine = stLine.ToString() + dGV.Rows[i].Cells[j].Value.ToString() + ", ";
}
}
myFile.WriteLine(stLine);
}
}
}
しかし、問題は、DatagridViewcellの値がHarikrishnaである場合、Daxiniである場合、それは適切にエクスポートされません。それを行う ?私はその価値を二重引用符と単一の引用で囲みながら試みましたが、うまくいきません。
解決
分離コンマとオープニングの二重引用の間のスペースは、CSVの問題を引き起こす可能性があります。のようなコードを交換します "val1", "val2"
CSVファイルで "val1","val2"
. 。それはあなたの問題を修正するはずです。
他のヒント
a '、'を含む値は、二重引用符で囲まれて逃げる必要があります。
for (int j = 0; j < dGV.Rows[i].Cells.Count; j++)
{
if (dGV.Columns[j].Visible)
{
var value = dGV.Rows[i].Cells[j].Value.ToString();
var append = value.Contains(",")
? string.Format("\"{0}\"", value)
: value;
stLine = string.Format("{0}{1},", stLine, append) ;
}
}
所属していません StackOverflow