PDA

View Full Version : مشکل با export کردن دیتا گرید ویو به اکسل



alireza.b
دوشنبه 17 تیر 1392, 12:14 عصر
سلام
من این کدا رو از سایت codeproject برداشتم:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Configuration;
using System.IO;


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
}

مشکل من اینجاست که کلمات فارسی رو با علامت ؟ نشان میده
در ضمن می خوام یه کاری کنم که از اون فایل اکسل یه پرینتم بگیره

Sal_64
دوشنبه 17 تیر 1392, 13:23 عصر
سلام

با استفاده از امکان جستجو سایت می تونید جواب اکثر سوالات بگیری
این لینک ببین (http://barnamenevis.org/showthread.php?385797-%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A7%D8%B2-%D8%AF%DB%8C%D8%AA%D8%A7%DA%AF%D8%B1%DB%8C%D8%AF-%D8%A8%D9%87-%D8%A7%DA%A9%D8%B3%D9%84-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-oledb-%D9%88-%D8%A8%D8%AF%D9%88%D9%86-%DA%A9%D9%85%DA%A9-Interop.Excel-%D8%A2%DB%8C%D8%A7-%D9%85%D9%85%DA%A9%D9%86-%D8%A7%D8%B3%D8%AA%D8%9F&p=1708112#post1708112)

alireza.b
دوشنبه 17 تیر 1392, 14:23 عصر
من قبل از ایجاد تایپیک سرچ کردم ولی چیزی پیدا نکردم
لینکی که معرفی کردین هم جواب سوالم نبود

fam_jam_teh
چهارشنبه 09 مرداد 1392, 01:37 صبح
ممنون از کدی که گذاشتع بودی من خیلی درگیر اضافه کردن dll مربوط به excel شده بودم ولی با کدی که گذاشتی مشکلم حل شد
برای رفع مشکلت کدت رو اینجوری تغییر بده

Encoding utf16 = Encoding.GetEncoding("windows-1256");
byte[] output = utf16.GetBytes(stOutput);