PDA

View Full Version : پیغام different format پس از تبدیل datagridview به اکسل



ali-1370
چهارشنبه 21 آبان 1393, 19:17 عصر
با سلام خدمت همه عزیزان

چرا پس از تبدیل دیتا گرید به اکسل با استفاده از کد زیر زمان مشاهده فایل ، اکسل پیغام different format داده و کاراکترهای فارسی را با علامت ؟ و # نمایش می دهد . لطفا راهنمائی فرمائید.





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


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


private void button3_Click(object sender, EventArgs e)
{
SaveFileDialog SaveFileDialog1 = new SaveFileDialog();
SaveFileDialog1.Filter = "Excel Documents (*.xls)|*.xls";
SaveFileDialog1.FileName = "export.xls";
if (SaveFileDialog1.ShowDialog() == DialogResult.OK)
{
//ToCsV(dataGridView1, @"c:\export.xls");
ToCsV(dataGridView1, SaveFileDialog1.FileName); // Here dataGridview1 is your grid view name
}
}

یونس ابراهیمی
چهارشنبه 21 آبان 1393, 21:32 عصر
سلام ...این لینک (http://forum.w3-farsi.com/?qa=959&qa_1=%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%AE%D8%B1%D9%88%D8%AC%DB%8C-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%DA%A9%D8%B3%D9%84-%D8%A7%D8%B2-datagridview&show=959#q959)روببینید

ali-1370
پنج شنبه 22 آبان 1393, 09:39 صبح
سلام ...این لینک (http://forum.w3-farsi.com/?qa=959&qa_1=%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%AE%D8%B1%D9%88%D8%AC%DB%8C-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%DA%A9%D8%B3%D9%84-%D8%A7%D8%B2-datagridview&show=959#q959)روببینید
با تشکر از آقای ابراهیمی متاسفانه نتیجه نگرفتم کد لینک فوق متفاوت بود اگر دوستان کد فوق را بررسی و راه حل را اعلام کنند ممنون خواهم شد.

محمد آشتیانی
پنج شنبه 22 آبان 1393, 13:27 عصر
سلام
برای خروجی فارسی ، کد پیج رو باید 1256 انتخاب کنی



Encoding utf16 = Encoding.GetEncoding(1256);



موفق باشید

ali-1370
پنج شنبه 22 آبان 1393, 18:53 عصر
سلام
برای خروجی فارسی ، کد پیج رو باید 1256 انتخاب کنی



Encoding utf16 = Encoding.GetEncoding(1256);



موفق باشید

جناب آشتیانی با تشکر از راهنمائی شما مشکل خروجی فارسی حل شد . اما زمان باز کردن فایل پیغام زیر می آید سپس فایل باز می شود. از آفیس 2007 استفاده می کنم.

125603

محمد آشتیانی
جمعه 23 آبان 1393, 00:45 صبح
سلام
علت این پیام اینه که شما واقعا فایل رو با فرمت اکسل ایجاد نمی کنید ، در واقع دارید یک فایل CSV ایجاد می کنید با پسوند XLS
اکسل میتونه فایل CSV رو باز کنه ولی وقتی شما این فرمت رو با پسوند XLSباز می کنید و نه CSV ، بهتون هشدار میده که فرمت فایل با پسوندش تفاوت داره.



پ.ن: CSV مخفف Comma Separated Values هست ، یعنی مقادیری که با کاما از هم جدا شدن ، کافیه فایلی رو که میسازی با notepad باز کنی و محتویاتش رو ببینی.

موفق باشید

ali-1370
شنبه 24 آبان 1393, 07:39 صبح
جناب آشتیانی
با سلام از اینکه به تمام پرسش ها با حوصله پاسخ دادید ممنونم .

با آرزوی موفقیت برای شما

smith_1361
شنبه 29 خرداد 1395, 12:54 عصر
با سلام و احترام
خواهشمند است در خصوص خروجی گرفتن فایل اکسل از گرید کامپوننت DevExpress نیز راهنمایی فرمایید.
با تشکر

smith_1361
شنبه 29 خرداد 1395, 12:56 عصر
سلام دوست عزیز در خصوص خروجی گرفتن با استفاده از GridView از کامپوننت DevExpress نیز راهنمایی فرمایید. ممنون.