مشکل در ترانسفر شدن اطلاعات فارسی
سلام
دوستان من برنامه ای نوشتم که طلاعات دیتاگریدم رو داخل یک فیل اکسل میریزه
تنها مشکلی که وجود داره که رشته های فارسی رو درست انتقال نمیده و یک سری کاراکتر در هم برهم ذخیره میکنه
ممنون میشم راهنمایی کنید
اینم کدی هست که نوشتم ( در C#)
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("utf-32");
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();
}
private void button1_Click(object sender, EventArgs e)
{
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
}
}
نقل قول: مشکل در ترانسفر شدن اطلاعات فارسی
به جای این:
Encoding utf16 = Encoding.GetEncoding("utf-32");
این رو بذارین:
Encoding utf16 = Encoding.GetEncoding("utf-16");
به جای این هم:
sfd.Filter = "Excel Documents (*.xls)|*.xls";
sfd.FileName = "export.xls";
این رو بذارید:
sfd.Filter = "Excel Documents (*.csv)|*.csv";
sfd.FileName = "export.csv";
نقل قول: مشکل در ترانسفر شدن اطلاعات فارسی
با این تغییرات هم درست نشد :ناراحت:
نقل قول: مشکل در ترانسفر شدن اطلاعات فارسی
فونت در اکسل را تغییر بده تا درست نمایش بده و یکی از فونت های فارسی رایج را انتخاب کن
نقل قول: مشکل در ترانسفر شدن اطلاعات فارسی
نقل قول:
نوشته شده توسط
saied_max
فونت در اکسل را تغییر بده تا درست نمایش بده و یکی از فونت های فارسی رایج را انتخاب کن
متاسفانه با تغییر فونت هم درست نشد
شکل دیگه ای هست که من اطلاعات دیتاگرید رو به فایل اکسل انتقال بدم که مشکل فارسیش حل بشه ؟
نقل قول: مشکل در ترانسفر شدن اطلاعات فارسی
نقل قول:
نوشته شده توسط
mostafa_aa
شکل دیگه ای هست که من اطلاعات دیتاگرید رو به فایل اکسل انتقال بدم که مشکل فارسیش حل بشه ؟
من به این روش اطلاعات گرید رو به اکسل میفرستم و مشکلی نداره
dgvTemp = (DataGridView)ctrl;
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
ExcelApp.Application.Workbooks.Add(Type.Missing);
ExcelApp.Visible = true;
ExcelApp.Columns.ColumnWidth = 20;
int k = 1;
for (int i = 0; i < dgvTemp.Rows.Count; i++)
{
k = 1;
for (int j = 0; j < dgvTemp.Columns.Count; j++)
{
if (dgvTemp.Columns[j].Visible && dgvTemp.Rows[i].Cells[j].Value != null)
{
ExcelApp.Cells[1, k] = dgvTemp.Columns[j].HeaderText;
ExcelApp.Cells[i + 2, k] = dgvTemp.Rows[i].Cells[j].Value.ToString();
k++;
}
}
}
نقل قول: مشکل در ترانسفر شدن اطلاعات فارسی
ممنونم الهه خانوم ، با همین روش مشکل حل شد
سپاس