1 ضمیمه
مشکل در علامت سوال به جای کاراکترهای فارسی در خروجی Excel؟
سلام
جستجو کردم اما تمامیه موارد گفته شده رو در برنامه رعایت کردم ، کدهای insert اطلاعات از حرف N استفاده کردم،زبان sql هم بر روی persian_100 هست فیلدها هم nvarchar هستند.
سوال مشابه پیدا کردم در انجمن که بی پاسخ هست.
این تابع رو برای گرفتن خروجی از datagrid هست :
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(dataGridView2, @"c:\export.xls");
ToCsV(dataGridView2, sfd.FileName); // Here dataGridview2 is your grid view name
}
خروجی :
ضمیمه 129179
نقل قول: مشکل در علامت سوال به جای کاراکترهای فارسی در خروجی Excel؟
سلام
به جای اینکه اطلاعات را در Datagridview بریزید در یک Datatable ذخیره کنید و DataTable را به متد ارسال کنید. به نظرم باید درست شود.
نقل قول: مشکل در علامت سوال به جای کاراکترهای فارسی در خروجی Excel؟
سلام
اینجا قبلا پاسخ دادم https://barnamenevis.org/showthread.p...&highlight=csv
در واقع برای خروجی فارسی ، کد پیج رو باید 1256 انتخاب کنی.
موفق باشید
نقل قول: مشکل در علامت سوال به جای کاراکترهای فارسی در خروجی Excel؟
سلام
این مشکل فقط تو Excel دیده نمیشه. برخی از برنامهها Unicode هستن و برخی دیگه نیستن. تو ویندوز یه تنظیمی وجود داره
که مشخص میکنه برای برنامههایی که از Unicode پشتیبانی نمیکنن، از چه code page ای استفاده کنه. این تنظیم رو میتونی
تو Control Panel~Region ( برای ویندوز 8.1 ) یا Control Panel~Regional and language options ( تو ویندوزهای قدیمیتر ) پیدا کنی.
البته تحت عنوان Language for non-Unicode programs
صبا صبوحی