سوال در مورد نمایش اطلاعات دیتاگرید در اکسل
سلام.
خسته نباشید.
من یه پروژه نوشتم که یه سری اطلاعات رو تو دیتاگرید نمایش میده و با زدن یه دکمه اطلاعات دیتاگرید رو میریزه تو اکسل.
اما اطلاعات تو اکسل به صورت ؟ به نمایش در میان.
من از تابع زیر برای این کار استفاده کردم:
کد:
private void export(DataGridView dataGridView1, string filename) {
string stOutput = "";
string sheader = "";
for (int i = 0; i < dataGridView1.Columns.Count; i++)
sheader = sheader.ToString() + Convert.ToString(dataGridView1.Columns[i].HeaderText) + "\t";
stOutput += sheader + "\r\n";
for (int j = 0; j < dataGridView1.Rows.Count-1; j++)
{
string stline = "";
for (int k = 0; k < dataGridView1.Rows[j].Cells.Count; k++)
stline = stline.ToString() + Convert.ToString(dataGridView1.Rows[j].Cells[k].Value) + "t";
stOutput += stline + "\r\n";
}
Encoding utf8 = Encoding.GetEncoding("windows-1256");
byte[] output = utf8.GetBytes(stOutput);
FileStream fs = new FileStream(filename, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(output,0,output.Length);
bw.Flush();
bw.Close();
fs.Close();
}
و موقع زدن دکمه، کد زیر تابع رو فراخوانی میکنه:
کد:
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Excel WorkBook|*.xls";
sfd.FileName = "Export";
if (sfd.ShowDialog()==DialogResult.OK)
{
export(dataGridView1, sfd.FileName);
}
خود من فکر میکنم این خط خود اشتباه باشه:
کد:
Encoding utf8 = Encoding.GetEncoding("windows-1256");
میشه راهنمایی بفرمایید؟
ممنون.