zoukankan      html  css  js  c++  java
  • 【原】将datagridview里的数据导出到excel(一)

    哥本哈根
    private void ExportExcel(string fileName, DataGridView myDGV)
            {
                
    string saveFileName = "";
                
    //bool fileSaved = false;
                SaveFileDialog saveDialog = new SaveFileDialog();
                saveDialog.DefaultExt 
    = "xls";
                saveDialog.Filter 
    = "Excel文件|*.xls";
                saveDialog.FileName 
    = fileName;
                saveDialog.ShowDialog();
                saveFileName 
    = saveDialog.FileName;
                
    if (saveFileName.IndexOf(":"< 0return//被点了取消
                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;
                    worksheet.get_Range(worksheet.Cells[
    11], worksheet.Cells[1, i + 1]).Font.Bold = true;
                }
                
    //写入数值
                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();
                }
                
    if (saveFileName != "")
                {
                    
    try
                    {
                        workbook.Saved 
    = true;
                        workbook.SaveCopyAs(saveFileName);
                    }
                    
    catch (Exception ex)
                    {
                        MessageBox.Show(
    "导出文件时出错,文件可能正被打开!\n" + ex.Message);
                    }

                }

                xlApp.Quit();
                GC.Collect();
    //强行销毁
                
    // if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //打开EXCEL
                MessageBox.Show(fileName + "保存成功""提示", MessageBoxButtons.OK);
            }
  • 相关阅读:
    Vue 生命周期
    Vue
    对象
    【菜鸟学php】用菜鸟的眼光浅谈php上传文件
    在职程序猿为啥要考相关证书
    微信分享js失效,分享内容自定义将作为接口开放
    【菜鸟学Linux】gzip解压报错:gzip: stdin has more than one entry--rest ignored
    【菜鸟学php】在敲代码的路上,给自己点时间来思考
    【菜鸟学php】小菜鸟由帝国备份王在Wamp环境下打开500错误浅谈PHP程序员
    eclipse中使用ctrl无法追踪函数的问题(php项目)
  • 原文地址:https://www.cnblogs.com/gebenhagen/p/1736261.html
Copyright © 2011-2022 走看看