PDA

View Full Version : مشکل در ذخیره فارسی اطلاعات datagridview در excel



hadi vafaii
شنبه 11 آذر 1396, 04:52 صبح
سلام عرض می کنم خدمت دوستان عزیز
بنده بعد از کلی سرچ در مورد ذخیره اطلاعات دیتاگرید در کسل یه کدی از سایت خارجی پیدا کردم اما یه مشکل داره که حروف فارسی رو به صورت علامت سوال ذخیره میکنه اگر ممکنه کد رو برسی کنید و بگید مشکل از چیه



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 + "\r\n";
// 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 + "\r\n";
}
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
}

hadi vafaii
یک شنبه 12 آذر 1396, 11:57 صبح
جواب رو پیدا کردم گفتم اینجا هم قرار بدم شاید یکی دیگه هم این مشکل رو داشت
تو این قسمت


Encoding utf16 = Encoding.GetEncoding(1254);

کد 1256 رو باید میزدم
یا Encoding.defult رو میزدم :لبخندساده::لبخندساده:

samiasoft
یک شنبه 12 آذر 1396, 18:30 عصر
دوست عزیز پیشنهاد میکنم که بجای این همه مشکلات از GemBox Spreadsheet استفاده کنید که کار رو بسیار راحت کرده

همچنین کدهای شما وقتی که در سیستم مشتری افیس نصب نباشه کار نخواهد کرد و یا مشکلات دیگر ...

رامین مرادی
دوشنبه 13 آذر 1396, 08:06 صبح
دوست عزیز پیشنهاد میکنم که بجای این همه مشکلات از GemBox Spreadsheet استفاده کنید که کار رو بسیار راحت کرده

همچنین کدهای شما وقتی که در سیستم مشتری افیس نصب نباشه کار نخواهد کرد و یا مشکلات دیگر ...
اگه اشتباه نکنم نیاز به خرید لایسنس داره؟ شما خودتون خریدید یا نسخه دستکاری شدشو استفاده میکنید؟