ASP.NET后台自定义导出Excel

关于导出,属于老生常谈了,下面就总结下我自己遇到的一些导出吧。

1、使用Excel组件进行导出(需要安装Microsoft Office Excel)。

下面为代码,希望可以帮助别人。

1)准备数据源

//首先创建一个DataTable
DataTable dtSource = new DataTable();
dtSource.Columns.Add("ID");
dtSource.Columns.Add("Name");
dtSource.Columns.Add("Description");

//往DataTable中添加一些数据for(int i=0;i<10;i++){  DataRow row = dtSource.NewRow();  row["ID"]=i+1;  row["Name"]="Tom And Jerry";  row["Description"]="这是一个经典的动画片,猫和老鼠";  dtSource.Rows.Add(row);}

string filePath = HttpContext.Current.Server.MapPath("~/UpFiles/file/aa.xls");

2)创建Excel对象,并添加数据

//
Microsoft.Office.Interop.Excel.Application excel = null;   //创建一个Office对象,或者使用Microsoft.Office.Interop.Excel._Application

excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
  excel.Workbooks.Add(true);
  int rowIndex=1; //Excel中的行,从1开始
  int colIndex=1; //Excel中的列,从1开始
  //添加标题
 foreach(DataColumn col in dtSource.Columns){
   excel.Cells[rowIndex,colIndex] = col.ColumnName;
   colIndex++;
  }
  //添加表格内容
 foreach(DataRow row in dtSource.Rows){
   rowIndex++;
   colIndex = 1;
   foreach(DataColumn col in dtSource.Columns){
      excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
      colIndex++;
   }
  }

excel.ActiveWorkbook.SaveAs(filePath,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange
 ,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);

excel.Quit();
  excel = null;


3)生成结果如下图所示

时间: 2024-08-03 12:36:32

ASP.NET后台自定义导出Excel的相关文章

ASP.NET Core 导入导出Excel xlsx 文件

ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Linux和Mac. EPPlus.Core 是基于EPPlus 更改而来,在Linux 下需要安装libgdiplus . EPPlus:http://epplus.codeplex.com/ EPPlus.Core:https://github.com/VahidN/EPPlus.Core 下面在A

laravel-admin 自定义导出excel功能,并导出图片

https://www.jianshu.com/p/91975f66427d 最近用laravel-admin在做一个小项目,其中用到了excel导出功能. 但是laravel-admin自带的导出功能不带图片,并且导出的数据有很多冗余的字段,并非我所需要的功能. 所以参考官方文档调整代码,实现了自定义导出excel文件,并且带上图片: 步骤如下: 1. 安装laravel-excel插件 可参考laravel5.5 中使用laravel-excel composer require maatw

freecms中后台添加导出excel表格功能

导出excel,可以让页面通过js导出,也可以通过后台导出. 通过js导出有各种限制,有些还只能在ie上导(用了activex控件) 最好的办法,是通过Apache POI导出. Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 关于POI导Excel,这里有一个不错的博客 http://blog.csdn.net/ptzrbin/article/details/8751293

Asp.Net 使用Npoi导出Excel

引言 使用Npoi导出Excel 服务器可以不装任何office组件,昨天在做一个导出时用到Npoi导出Excel,而且所导Excel也符合规范,打开时不会有任何文件损坏之类的提示.但是在做导入时还是使用OleDb的方式,这种方式的导入在服务器端似乎还是需要装office组件的,有没有不需要装组件并且能照常导入的呢? Npoi导出/下载Excel public void NpoiExcel(DataTable dt, string title) { NPOI.HSSF.UserModel.HSS

asp.net 控件 导出 excel

//导出EXCEL protected void btnDaoChu_Click(object sender, EventArgs e) { HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=&

asp.net webform/mvc导出Excel通用代码

最近将自己在项目中经常用到的excel导出方法分析如下,如有不妥之处望他人指出,如果有更好的方法希望展示出来互相学习. //导出事件 protected void btnexcel_Click(object sender, EventArgs e) { //定义导出Excel的标题 List<string> tabletitle = new List<string>(); tabletitle.Add("企业注册号"); tabletitle.Add("

asp.net c# 网页 导出excel 多表格 多个sheet

/// <summary> ///可导出多个sheet表 /// </summary> /// <param name="Author">作者</param> /// <param name="Company">公司</param> /// <param name="dt">多个DataTable</param> /// <param name=

后台列表导出Excel

小白做的导出功能 js部分: function btn_export() { dialogConfirm("注:您确定要导出报表吗?", function (r) { if (r) { Loading(true, "正在导出..."); window.setTimeout(function () { $.ajax({ url: "", type: "post", data: { start_date:$("#star

asp.net中导入导出Excel

//前端按钮请求 function Out_Excel(TC_ID) { $.post("Ajax/ExportExcel.aspx", { TC_ID: TC_ID }, function (data) { if (data != "") { window.open(data); } }) } ///后端接口处理using System;using System.Collections.Generic;using System.Linq;using System.