0 امتیاز

سلام این کد منه برای استایل موردنظرم جهت خروجی اکسل 

                                        Microsoft.Office.Interop.Excel.Range range = worksheet.get_Range("A1:G10");

                                        worksheet.ListObjects.AddEx(Microsoft.Office.Interop.Excel.XlListObjectSourceType.xlSrcRange, range, mis,Microsoft.Office.Interop.Excel.XlYesNoGuess.xlNo, mis).Name = "Table1";
                                        worksheet.ListObjects.get_Item("Table1").TableStyle = "TableStyleLight16";

حالا موقع خروجی سرستون ها رو خودش جدید میزاره culomn1 , و ... ولی من میخوام اولین ردیفم سرستون باشه راهش چیه؟

1 پاسخ

0 امتیاز

شما در کد بالا می  بایستی از کلاس اکسل استفاده کنی و کار با اون سخته ببین این راهور تست کن 

خودم از این روش استفاده میکنم  هر فیلدی شما در دیتابیس دارید اسم همونو اکسپورت میکنه

 

 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 sss = Encoding.UTF8.GetEncoding(65001);
            Encoding e2 = Encoding.GetEncoding("utf-8");
            byte[] output = e2.GetBytes(stOutput);
            FileStream fs = new FileStream(filename, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs,Encoding.UTF8);
            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(dataGridUser, sfd.FileName); // Here dataGridview1 is your grid view name
            }

 

این روش هم هست

 try
            {
                string csv = string.Empty;

                //Add the Header row for CSV file.
                foreach (DataGridViewColumn column in dataGridView1.Columns)
                {
                    csv += column.HeaderText + ',';
                }

                //Add new line.
                csv += "\r\n";

                //Adding the Rows
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    foreach (DataGridViewCell cell in row.Cells)
                    {
                        //Add the Data rows.
                        csv += cell.Value.ToString().Replace(",", ";") + ',';
                    }

                    //Add new line.
                    csv += "\r\n";
                }
                string setrnd = DateTime.Now.ToLongTimeString();
                //Exporting to CSV.
                string folderPath = "g:\\";
                File.WriteAllText(folderPath + "DtaGrid.csv", csv, Encoding.Unicode);
                MessageBox.Show("Export To Exel Success in [G] Drive", "Export Datagrid To EXEL");
            }
            catch 
            {

               
            }

 

توسط (7,164 امتیاز) 4 7 141

ممنون و سپاسگذارم بابت راهنمایی 

ولی امکانش هست راهی باشه که بشه از همین راهی که رفتم و رفرنس اکسل استفاده کرد ؟

چون من یه کدهایی هم بهش دادم و سخته اینجا دوباره بدمشون کد اکسل من اینجوریه


                    //Export To exel
                    string ads;
                    int number;
                    if (int.TryParse(idforgetpass.ToString(), out number))
                    {
                        Cursor = Cursors.WaitCursor;
                        ads = Class_Contract.UngetDirectory() + "قرارداد شماره" + txt_ExportId.Text + "\\" + "Export\\";

                        Directory.CreateDirectory(ads);
                        object mis = System.Reflection.Missing.Value;
                        Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();

                        Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
                        Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
                        app.Visible = false;
                        worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets["Sheet1"];
                        worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.ActiveSheet;
                        worksheet.Name = "قرارداد شماره" + txt_ExportId.Text;
                        for (int i = 1; i < dataGridView3.Columns.Count + 1; i++)
                        {
                            worksheet.Cells[1, i] = dataGridView3.Columns[i - 1].HeaderText;
                        }
                        for (int i = 0; i < dataGridView3.Rows.Count - 1; i++)
                        {
                            for (int j = 0; j < dataGridView3.Columns.Count; j++)
                            {
                                worksheet.Cells[i + 2, j + 1] = dataGridView3.Rows[i].Cells[j].Value.ToString();
                            }
                        }
                        workbook.Password = idforgetpass.ToString() ;

                        workbook.SaveAs(ads + Class_Import.MiladiToShamsiForExel(Class_Contract.ToGeorgianDateTime(lbl_Export_Date.Text)), Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

                        app.Quit();

 

حالا از طریق workbook که تعریف شده میشه؟

توسط (197 امتیاز) 6 20
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,920 کاربر

دسته بندی ها

...