zoukankan      html  css  js  c++  java
  • C#导出Excel的函数(可根据实际需要进行相应修改)

      //导出Excel的方法
      private void ExportExcel()
      {
       DataSet ds=dtsSelect;//数据源
       if(ds==null) return;

       string saveFileName="";
       bool fileSaved=false;
       SaveFileDialog saveDialog=new SaveFileDialog();
       saveDialog.DefaultExt ="xls";
       saveDialog.Filter="Excel 文件|*.xls";
       saveDialog.FileName ="Sheet1";
       saveDialog.ShowDialog();
       saveFileName=saveDialog.FileName;
       if(saveFileName.IndexOf(":")<0) return; //被点了取消

       Excel.Application xlApp=new Excel.Application();

       if(xlApp==null)
       {
        MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");
        return;
       }

       Excel.Workbooks workbooks=xlApp.Workbooks;
       Excel.Workbook workbook=workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
       Excel.Worksheet worksheet=(Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
       //写入字段
       for(int i=0;i<ds.Tables[0].Columns.Count;i++)
       {
        worksheet.Cells[1,i+1]=ds.Tables[0].Columns[i].ColumnName;
       }
       //写入数值
       
       for(int r=0;r<ds.Tables[0].Rows.Count;r++)
       {
        for(int i=0;i<ds.Tables[0].Columns.Count;i++)
        {
         worksheet.Cells[r+2,i+1]=ds.Tables[0].Rows[r][i];
        }
        System.Windows.Forms.Application.DoEvents();
       }
       worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。
       if(cmbxType.Text!="Notification")
       {
        Excel.Range rg=worksheet.get_Range(worksheet.Cells[2,2],worksheet.Cells[ds.Tables

    [0].Rows.Count+1,2]);
        rg.NumberFormat="00000000";
       }
       if(saveFileName!="")
       {
        try
        {
         workbook.Saved =true;
         workbook.SaveCopyAs(saveFileName);
         fileSaved=true;
        }
        catch(Exception ex)
        {
         fileSaved=false;
         MessageBox.Show("导出文件时出错,文件可能正被打开!\n"+ex.Message);
        }
       }
       else
       {
        fileSaved=false;
       }
       xlApp.Quit();
       GC.Collect();// 强行销毁
       if(fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start

    (saveFileName); //打开EXCE
  • 相关阅读:
    第一个Android应用 扫描宝 欲挑战传统扫描枪
    前端工程师在实现支付功能的时候能做些什么(V客学院技术分享)?
    HBuilder android 打包指南(V客学院技术分享)
    JavaScript 事件处理详解
    关于webpack的path和publicPath。
    svg线条的动画到渐变
    vue目录结构及其对应作用
    数据改变视图未变问题解决(Object.assign)
    ES6语法的简单介绍——拓展运算符
    webpack打包原理
  • 原文地址:https://www.cnblogs.com/top5/p/1668800.html
Copyright © 2011-2022 走看看