C# 导出Excel

需要添加引用  Microsoft.Office.Interop.Excel

参考路径  C:\Program Files (x86)\Microsoft Office\Office16\DCF\Microsoft.Office.Interop.Excel.dll

public static void ExportExcel(System.Windows.Forms.DataGridView dgvMain)
        {

            string fileName = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss");
            string saveFileName = "";
            System.Windows.Forms.SaveFileDialog saveDialog = new System.Windows.Forms.SaveFileDialog
            {
                DefaultExt = "xlsx",
                Filter = "Excel文件|*.xlsx",
                FileName = fileName
            };
            saveDialog.ShowDialog();
            saveFileName = saveDialog.FileName;
            if (saveFileName.IndexOf(":") < 0)
                return;
            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
            if (xlApp == null)
            {
                System.Windows.Forms.MessageBox.Show("无法创建Excel对象,您的电脑可能未完全安装Office", "", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
                return;
            }
            Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
            Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
            for (int i = 0; i < dgvMain.ColumnCount; i++)
            {
                worksheet.Cells[1, i + 1] = dgvMain.Columns[i].HeaderText;
            }
            for (int r = 0; r < dgvMain.Rows.Count; r++)
            {
                for (int i = 0; i < dgvMain.ColumnCount; i++)
                {
                    worksheet.Cells[r + 2, i + 1] = dgvMain.Rows[r].Cells[i].Value;
                }
                System.Windows.Forms.Application.DoEvents();
            }
            worksheet.Columns.EntireColumn.AutoFit();
            if (saveFileName != "")
            {
                try
                {
                    workbook.Saved = true;
                    workbook.SaveCopyAs(saveFileName);
                }
                catch (Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show("导出文件时出错,文件可能正被使用!\n" + ex.Message, "", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
                }
            }
            xlApp.Quit();
            GC.Collect();
        }

 

posted @ 2021-01-10 13:16  筱米米  阅读(113)  评论(0)    收藏  举报