سلام عرض می کنم خدمت دوستان عزیز
بنده بعد از کلی سرچ در مورد ذخیره اطلاعات دیتاگرید در کسل یه کدی از سایت خارجی پیدا کردم اما یه مشکل داره که حروف فارسی رو به صورت علامت سوال ذخیره میکنه اگر ممکنه کد رو برسی کنید و بگید مشکل از چیه

private void ToCsV(DataGridView dGV, string filename)
{
string stOutput = "";
// Export titles:
string sHeaders = "";

for (int j = 0; j < dGV.Columns.Count; j++)
sHeaders = sHeaders.ToString() + Convert.ToString(dGV.Columns[j].HeaderText) + "t";
stOutput += sHeaders + "rn";
// Export data.
for (int i = 0; i < dGV.RowCount - 1; i++)
{
string stLine = "";
for (int j = 0; j < dGV.Rows[i].Cells.Count; j++)
stLine = stLine.ToString() + Convert.ToString(dGV.Rows[i].Cells[j].Value) + "t";
stOutput += stLine + "rn";
}
Encoding utf16 = Encoding.GetEncoding(1254);
byte[] output = utf16.GetBytes(stOutput);
FileStream fs = new FileStream(filename, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(output, 0, output.Length); //write the encoded file
bw.Flush();
bw.Close();
fs.Close();
}


و برای ذخیره هم کد زیر

SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Excel Documents (*.xls)|*.xls";
sfd.FileName = "export.xls";
if (sfd.ShowDialog() == DialogResult.OK)
{
//ToCsV(dataGridView1, @"c:export.xls");
ToCsV(dataGridView1, sfd.FileName); // Here dataGridview1 is your grid view name
}