• c#-winform中DataGridView的数据实现导出excel


    首先需要引入程序集:Microsoft.Office.Interop.Excel  (如果没有引用过的需要右键添加引用再搜索就行了)

       private void button1_Click(object sender, EventArgs e)

       {
          string a = "D:" "\KKHMD.xls";
          ExportExcels(a, dataGridView1);
       }
     

       /// <summary>

       ///
       /// </summary>
       /// <param name="fileName">文件路径</param>
       /// <param name="myDGV">控件DataGridView</param>
       private void ExportExcels(string fileName, DataGridView myDGV)
       {
           string saveFileName = "";
           SaveFileDialog saveDialog = new SaveFileDialog();
           saveDialog.DefaultExt = "xls";
           saveDialog.Filter = "Excel文件|*.xls";
           saveDialog.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)
           {
               MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");
               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];//取得sheet1
           //写入标题
           for (int i = 0; i < myDGV.ColumnCount; i++)
           {
               worksheet.Cells[1, i + 1] = myDGV.Columns[i].HeaderText;
           }
           //写入数值
           for (int r = 0; r < myDGV.Rows.Count; r++)
           {
               for (int i = 0; i < myDGV.ColumnCount; i++)
               {
                   worksheet.Cells[r + 2, i + 1] = myDGV.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)
               {
                   MessageBox.Show("导出文件时出错,文件可能正被打开! " + ex.Message);
               }
           }
           xlApp.Quit();
           GC.Collect();//强行销毁
           MessageBox.Show("文件: " + fileName + ".xls 保存成功""信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
       }
  • 相关阅读:
    47数据结构与算法分析之---查找的基本概念
    46数据结构与算法分析之---排序方法比较
    45数据结构与算法分析之---基数排序
    44数据结构与算法分析之---归并排序
    43数据结构与算法分析之---选择排序
    42数据结构与算法分析之---交换排序
    41数据结构与算法分析之---插入排序
    54数据结构与算法分析之---哈希查找
    40数据结构与算法分析之---排序的基本概念
    37数据结构与算法分析之---关键路径
  • 原文地址:https://www.cnblogs.com/kcwang/p/14966508.html
Copyright © 2020-2023  润新知