مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

amiramir

عضویت از 1393/10/10

انتقال داده ها از دیتا گرید به اکسل

  • سه شنبه 4 مهر 1396
  • 13:47
تشکر میکنم

سلام

من برای انتقال داده ها از دیتا گرید به اکسل،از کد زیر استفاده می کنم:

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 فایل اکسل هم به روش زیر نمایش داده می شود(اطلاعات انگلیسی و اعداد به درستی نمایان می گردد ولی اطلاعات فارسی عبارات نامفهوم را نشان می دهد):

اگه روش دیگه ای برای این کار بلدید،ممنون میشم که راهنمایی ام کنید!

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 4 مهر 1396
  • 20:30
کاربر سایت

amiramir

عضویت از 1393/10/10

  • چهارشنبه 5 مهر 1396
  • 09:57
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) را جایگزین کردم.

اما با خطاهای زیر مواجه شدم:

ممنون میشم که راهنمایی ام نمایید

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 5 مهر 1396
  • 10:27

اون نمونه سی شارپ هست دوست من باید تغییر بدید و در WPF استفاده کنید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)