سلام
من برای انتقال داده ها از دیتا گرید به اکسل،از کد زیر استفاده می کنم:
private void Button_Click(object sender, RoutedEventArgs e)
{
mainDataGrid.SelectAllCells();
mainDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
ApplicationCommands.Copy.Execute(null, mainDataGrid);
String resultat = (string)Clipboard.GetData(DataFormats.CommaSeparatedValue);
String result = (string)Clipboard.GetData(DataFormats.Text);
mainDataGrid.UnselectAllCells();
System.IO.StreamWriter file1 = new System.IO.StreamWriter(@"D:\test.xls");
file1.WriteLine(result.Replace(',', ' '));
file1.Close();
MessageBox.Show("OK");
}
با زدن دکمه،اطلاعات دیتا گرید به یک فایل اکسل در درایو D منتقل می شود،اما ابتدا پیام زیر ظاهر شده و با زدن دکمه Yes فایل اکسل هم به روش زیر نمایش داده می شود(اطلاعات انگلیسی و اعداد به درستی نمایان می گردد ولی اطلاعات فارسی عبارات نامفهوم را نشان می دهد):
اگه روش دیگه ای برای این کار بلدید،ممنون میشم که راهنمایی ام کنید!
private void Button_Click(object sender, RoutedEventArgs e) { string csv = string.Empty; //Add the Header row for CSV file. foreach (DataGridViewColumn column in mainDataGrid.Columns) { csv += column.HeaderText + ','; } //Add new line. csv += "\r\n"; //Adding the Rows foreach (DataGridViewRow row in mainDataGrid.Rows) { foreach (DataGridViewCell cell in row.Cells) { //Add the Data rows. csv += cell.Value.ToString().Replace(",", ";") + ','; } //Add new line. csv += "\r\n"; } //Exporting to CSV. string folderPath = "E:\\CSV\\"; File.WriteAllText(folderPath + "DataGridViewExport.csv", csv); }
کدها را وارد کردم و نام دیتا گرید خودم(mainDataGrid) را جایگزین کردم.
اما با خطاهای زیر مواجه شدم:
ممنون میشم که راهنمایی ام نمایید
اون نمونه سی شارپ هست دوست من باید تغییر بدید و در WPF استفاده کنید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)