protected void btnExport_Click(object sender, EventArgs e){try{string where = GetWhere();string sql = "select zkNum as 稿件编号,tittle as 稿件标题,authors as 作者,dws as 单位,phone as 电话,email as 邮箱,(zkNum + '-' + tittle) as Word文档,note as 备注 from tb_Zkzgqs where 1=1 " + where;DataTable dt1 = dal.GetDataBySql(sql);if (dt1 == null || dt1.Rows.Count == 0){Response.Write("<script>alert('增刊不存在,不能导出!')</script>");}else{string fileRpath = Server.MapPath("/HH_Download/Excel/zkExcel/") + DateTime.Now.ToString("yyyyMMddHHssmm")+".xls";ExcelHelper.TableToExcel(dt1, fileRpath);Response.ClearHeaders();Response.Clear();Response.Expires = 0;Response.Buffer = true;Response.AddHeader("Accept-Language", "zh-tw");string name = System.IO.Path.GetFileName(fileRpath);FileStream files = new FileStream(fileRpath, FileMode.Open, FileAccess.Read, FileShare.Read);byte[] byteFile = null;if (files.Length == 0){byteFile = new byte[1];}else{byteFile = new byte[files.Length];}files.Read(byteFile, 0, (int)byteFile.Length);files.Close();Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("增刊稿件列表.xls", System.Text.Encoding.UTF8));Response.ContentType = "application/octet-stream;charset=gbk";Response.BinaryWrite(byteFile);// Response.End();;}}catch(Exception ex){throw ex;}}

涉及的导出帮助类ExcelHelper  注意引用npoi

public static class ExcelHelper{#region 私有方法/// <summary>/// Excel导入成Datable/// </summary>/// <param name="file">导入路径(包含文件名与扩展名)</param>/// <returns></returns>public static DataTable ExcelToTable(string file){DataTable dt = new DataTable();IWorkbook workbook;string fileExt = Path.GetExtension(file).ToLower();using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read)){//XSSFWorkbook 适用XLSX格式,HSSFWorkbook 适用XLS格式if (fileExt == ".xlsx") { workbook = new XSSFWorkbook(fs); } else if (fileExt == ".xls") { workbook = new HSSFWorkbook(fs); } else { workbook = null; }if (workbook == null) { return null; }ISheet sheet = workbook.GetSheetAt(0);//表头  IRow header = sheet.GetRow(sheet.FirstRowNum);List<int> columns = new List<int>();for (int i = 0; i < header.LastCellNum; i++){object obj = GetValueType(header.GetCell(i));if (obj == null || obj.ToString() == string.Empty){dt.Columns.Add(new DataColumn("Columns" + i.ToString()));}elsedt.Columns.Add(new DataColumn(obj.ToString()));columns.Add(i);}//数据  for (int i = sheet.FirstRowNum + 1; i <= sheet.LastRowNum; i++){DataRow dr = dt.NewRow();bool hasValue = false;foreach (int j in columns){dr[j] = GetValueType(sheet.GetRow(i).GetCell(j));if (dr[j] != null && dr[j].ToString() != string.Empty){hasValue = true;}}if (hasValue){dt.Rows.Add(dr);}}}return dt;}public static DataSet ExcelToDataSet(string file){DataSet ds = new DataSet();// DataTable dt = new DataTable();IWorkbook workbook;string fileExt = Path.GetExtension(file).ToLower();using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read)){//XSSFWorkbook 适用XLSX格式,HSSFWorkbook 适用XLS格式if (fileExt == ".xlsx") { workbook = new XSSFWorkbook(fs); } else if (fileExt == ".xls") { workbook = new HSSFWorkbook(fs); } else { workbook = null; }if (workbook == null) { return null; }DataTable[] dts = new DataTable[workbook.NumberOfSheets];dts[0] = new DataTable();dts[1] = new DataTable();for (int j = 0; j < workbook.NumberOfSheets; j++){ISheet sheet = workbook.GetSheetAt(j);IRow header = sheet.GetRow(sheet.FirstRowNum);List<int> columns = new List<int>();for (int i = 0; i < header.LastCellNum; i++){object obj = GetValueType(header.GetCell(i));if (obj == null || obj.ToString() == string.Empty){dts[j].Columns.Add(new DataColumn("Columns" + i.ToString()));}elsedts[j].Columns.Add(new DataColumn(obj.ToString()));columns.Add(i);}//数据  for (int i = sheet.FirstRowNum + 1; i <= sheet.LastRowNum; i++){DataRow dr = dts[j].NewRow();bool hasValue = false;foreach (int k in columns){dr[k] = GetValueType(sheet.GetRow(i).GetCell(k));if (dr[k] != null && dr[k].ToString() != string.Empty){hasValue = true;}}if (hasValue){dts[j].Rows.Add(dr);}}ds.Tables.Add(dts[j]);}//ISheet sheet = workbook.GetSheetAt(0);//表头  }return ds;}/// <summary>/// Datable导出成Excel/// </summary>/// <param name="dt"></param>/// <param name="file">导出路径(包括文件名与扩展名)</param>public static void TableToExcel(DataTable dt, string file){IWorkbook workbook;string fileExt = Path.GetExtension(file).ToLower();if (fileExt == ".xlsx") { workbook = new XSSFWorkbook(); } else if (fileExt == ".xls") { workbook = new HSSFWorkbook(); } else { workbook = null; }if (workbook == null) { return; }ISheet sheet = string.IsNullOrEmpty(dt.TableName) ? workbook.CreateSheet("Sheet1") : workbook.CreateSheet(dt.TableName);//表头  IRow row = sheet.CreateRow(0);for (int i = 0; i < dt.Columns.Count; i++){ICell cell = row.CreateCell(i);cell.SetCellValue(dt.Columns[i].ColumnName);}//数据  for (int i = 0; i < dt.Rows.Count; i++){IRow row1 = sheet.CreateRow(i + 1);for (int j = 0; j < dt.Columns.Count; j++){ICell cell = row1.CreateCell(j);cell.SetCellValue(dt.Rows[i][j].ToString());}}//转为字节数组  MemoryStream stream = new MemoryStream();workbook.Write(stream);var buf = stream.ToArray();//保存为Excel文件  using (FileStream fs = new FileStream(file, FileMode.Create, FileAccess.Write)){fs.Write(buf, 0, buf.Length);fs.Flush();}}/// <summary>/// 获取单元格类型/// </summary>/// <param name="cell"></param>/// <returns></returns>private static object GetValueType(ICell cell){if (cell == null)return null;switch (cell.CellType){case CellType.Blank: //BLANK:  return null;case CellType.Boolean: //BOOLEAN:  return cell.BooleanCellValue;case CellType.Numeric: //NUMERIC:  return cell.NumericCellValue;case CellType.String: //STRING:  return cell.StringCellValue;case CellType.Error: //ERROR:  return cell.ErrorCellValue;case CellType.Formula: //FORMULA:  default:return "=" + cell.CellFormula;}}#endregion}

网页导出Excel文件并下载相关推荐

  1. asp.net中通过html格式导出excel文件

    //通过html格式生成导出excel文件,下载保存.   StreamExport(wgMdcStaff5, fileName, ToDataTable<MdcDrugProcureStock ...

  2. Springboot 自定义模板导出Excel文件

    指定模板(自定义)导出数据,就像: 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 记得加$ 注意: 模板这里有个小坑,就是当传入的值为数组时,需要 ...

  3. js网页导出excel表格文件

    下载地址 js网页导出excel表格文件,没有使用任何第三方js类库,简单的实现table数据导出效果. dd:

  4. a标签下载文件,js/jq创建a标签导出Excel文件

    a标签下载文件,js/jq 创建a标签导出Excel文件 1.设置dom(html) <button type="button" class="layui-btn ...

  5. ASP.NET Core 导出Excel文件

    最近学了一个ASP.NET Core 导出Excel文件程序,在学习过程中遇到了不少的麻烦!为了让大家更明白的怎么用ASP.NET Core 导出Excel文件,我决定把我学到的东西分享出来! 首先我 ...

  6. 如何使用JavaScript导入和导出Excel文件

    本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. JavaScript是一个涵盖多种框架.直译式.可以轻松自定义客户端的脚本 ...

  7. 惊了!7 行代码优雅地实现 Excel 文件生成下载功能

    欢迎关注个人微信公众号: 小哈学Java 个人网站: www.exception.site/essay/how-t- 目录 一.前言 二.Apache poi.jxl 的缺陷 三.阿里出品的 Easy ...

  8. java导入、导出Excel文件

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  9. 如何使用JavaScript实现纯前端读取和导出excel文件(转)

    转自小茗同学博客:https://www.cnblogs.com/liuxianan/p/js-excel.html js-xlsx 介绍 由SheetJS出品的js-xlsx是一款非常方便的只需要纯 ...

最新文章

  1. Linux下 SpringBoot jar项目后台运行、查看、停用
  2. 【Java代码】道格拉斯-普克 Douglas-Peucker 抽稀算法(算法流程图解+使用JDK8方法实现+详细注解源码)
  3. java java se_Java SE 7、8、9 –推动Java前进
  4. Netty源码注释翻译-Channel类
  5. androidStudio快捷键概览
  6. linux三剑客应用到工作中,LINUX 三剑客老大(AWK) 日常工作总结(示例代码)
  7. Javascript第五章document对象获取标签节点-第六课
  8. 最强的优化器:把RAdam和LookAhead协同组合
  9. 实例讲解微信小程序倒计时功能
  10. lame编译 android,Android编译Lame的全平台so库方案2,并实现转码mp3
  11. 计算机毕业设计JAVA企业售后服务管理系统mybatis+源码+调试部署+系统+数据库+lw
  12. java工厂方法_Java设计模式之工厂方法模式
  13. 分享我的33家公司面试经历(杭州华数/杭州网通/ 瞬联科技 )转贴
  14. 高版本php支持底版本wp,WP主题和插件将显示可以运行的PHP最低版本 | Wopus
  15. 5 爬虫 异步协程 梨视频
  16. win7 32/64位系统安装ug nx4.0
  17. 管道仪表流程图中常用的字母及其含义
  18. ZYNQ 常见问题解决方法
  19. 【win7死机也有可能是这个问题】
  20. gradle引入本地jar

热门文章

  1. 某不知名工控机装系统尝试
  2. ios 多线程gdc_GDC 2019中的Heretic,Megacity版本,实时光线追踪以及更多新闻
  3. SHU汇编程序设计常见考点、易错点总结与综合实例、汇编学习资源
  4. PHP直接将html导出doc文件并使其doc横向排版
  5. 在DDoS攻击来势汹汹的当下,DDoS防护还能临时抱佛脚吗?
  6. 圆与圆的位置关系题目含答案_中考总复习:圆的专题复习-圆的性质及与圆有关的位置关系考点分析...
  7. (王道计算机组成原理)第二章数据的表示和运算-第二节7:定点数除法运算(原码/补码一位除法)
  8. H5页面在iphone手机底部出现留白的情况
  9. 浪潮server 2008服务器自动重启,Windows Server 2008 R2不定时自动重启,求解决办法。...
  10. 按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。