asp.net 导出excel汇总(3)

 3.在excel模版的基础上写数据进去(基于微软的Com组件)
如果你电脑上安装的office 2000,请引用Excel9.0.dll,如果是office2003请引用Excel 11.0 object Library
/// <summary>
  /// 导出Excel
  /// </summary>
  /// <param name="templateExcelPath">模板文件所在路径(full name)</param>
  /// <param name="newExcelPath">要导出文件所在路径(full name)</param>
  /// <param name="iBegin">Excel文件内开始写入表内的数据的行的Index</param>
  /// <param name="dt">需要导出数据的数据表</param>
  /// <returns>bool</returns>
  protected bool ExportExcel(string templateExcelPath,string newExcelPath,int iBegin,DataTable dt)
  {
   bool bReturn = true;
   try
   {
    FileInfo fileInfo = new FileInfo(templateExcelPath);
    string newFileName = newExcelPath;
    fileInfo.CopyTo(newFileName);

    //打开复制后的文件
    object missing = Missing.Value;
    Excel.Application myExcel = new Excel.Application();
    //打开新文件
    myExcel.Application.Workbooks.Open(newFileName,missing,missing,missing,missing,
     missing,missing,missing,missing,missing,missing, missing,missing,missing,missing);
    //将Excel隐藏
    myExcel.Visible = false;
    Excel.Workbook  myBook  = myExcel.Workbooks[1];
    //Excel.Worksheet mySheet = (Excel.Worksheet)myBook.Worksheets[1];
    //逐行写入数据
    int iRows = dt.Rows.Count;
    int iCols = dt.Columns.Count;
    for(int i=0;i<iRows;i++)
    {
     for(int j=0;j<iCols;j++)
     {
      myExcel.Cells[iBegin+i,1+j]="'"+dt.Rows[i][j].ToString();
     }
    }
    myBook.Save();
    myExcel.Quit();
    //Excel.Range rBegin = mySheet.get_Range(mySheet.Cells[2,1],mySheet.Cells[2,1]);
    //string strValue=rBegin.Value.ToString();
    bReturn = FileDownload(newExcelPath);
   }
   catch{bReturn = false;}
   return bReturn;
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值