我的数据库是繁体字的,当我在winform的datagridview中显示数据库中的资料时没有问题,但当我把它导出到csv文档时就成乱码了,后来发现是我的excel是简体的,当我换成繁体的excel时就没问题了,可我不希望这样,我想在我导出数据时就设定好数据中的中文字应该使用什么编码,以下是我找到得导出数据库资料的代码,请告诉帮忙修改,帮我把设定字型编码的代码加上,谢谢!!!
private void button3_Click(object sender, EventArgs e)
{
saveexcel.Filter = "csv文件|*.csv|文本文件|*.txt";
saveexcel.InitialDirectory = "c:\\"; if (saveexcel.ShowDialog() == DialogResult.Cancel)
{
return;
}
else
{
string filename = saveexcel.FileName;
savecsv(dt, filename);
}
}
}public void savecsv(DataTable dt, string filename)
{
FileStream fs = new FileStream(filename, System.IO.FileMode.Create, System.IO.FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
string data = "";
for (int i = 0; i < dt.Columns.Count; i++)
{
data += dt.Columns[i].ColumnName.ToString();
if (i < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data );
for (int i = 0; i < dt.Rows.Count; i++)
{
data = "";
for (int j = 0; j < dt.Columns.Count; j++)
{
data += dt.Rows[i][j].ToString();
if (j < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data);
}
sw.Close();
fs.Close();
MessageBox.Show("保存成功");
private void button3_Click(object sender, EventArgs e)
{
saveexcel.Filter = "csv文件|*.csv|文本文件|*.txt";
saveexcel.InitialDirectory = "c:\\"; if (saveexcel.ShowDialog() == DialogResult.Cancel)
{
return;
}
else
{
string filename = saveexcel.FileName;
savecsv(dt, filename);
}
}
}public void savecsv(DataTable dt, string filename)
{
FileStream fs = new FileStream(filename, System.IO.FileMode.Create, System.IO.FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
string data = "";
for (int i = 0; i < dt.Columns.Count; i++)
{
data += dt.Columns[i].ColumnName.ToString();
if (i < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data );
for (int i = 0; i < dt.Rows.Count; i++)
{
data = "";
for (int j = 0; j < dt.Columns.Count; j++)
{
data += dt.Rows[i][j].ToString();
if (j < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data);
}
sw.Close();
fs.Close();
MessageBox.Show("保存成功");
你的代码不错 我抄了。。
话说设置 文字编码 改
System.Text.Encoding.Default
就ok了。。
话说设置 文字编码 改
System.Text.Encoding.Default
就ok了。。