博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
excel导入 导出 兼容各个版本服务器不装EXCEL也可以
阅读量:5298 次
发布时间:2019-06-14

本文共 3608 字,大约阅读时间需要 12 分钟。

1 给出 demo源码:             提取码:pw4n 首先要引用 NPOI.dll   (可在网上下载!)   2 //导入  3 public void OnSubmit()  4         {  5             string path = Server.MapPath("/upload/201410/27/201410271103461051.xls");  6             FileStream fs = File.Open(path, FileMode.Open);  7             System.Data.DataTable dt = ConvertToDataTable(fs);  8               9             foreach (DataRow row in dt.Rows) 10             { 11                 if (row["Mobile1"] != null) 12                 { 13                     Response.Write(row["Mobile1"].ToString() + " " + row["Mobile2"].ToString() + " 14 "); 15                 } 16             } 17             Response.End(); 18         } 19  20  21 //excel转DataTable 22 public static DataTable ConvertToDataTable(System.IO.Stream excelFileStream) 23         { 24             HSSFWorkbook HSSFWorkbook = new HSSFWorkbook(excelFileStream); 25             DataTable dt = new DataTable(); 26             HSSFSheet sheet = (HSSFSheet)HSSFWorkbook.GetSheetAt(0); 27             System.Collections.IEnumerator rows = sheet.GetRowEnumerator(); 28             int n = 0; 29             while (rows.MoveNext()) 30             { 31                 HSSFRow row = (HSSFRow)rows.Current; 32                 if (n == 0) 33                 { 34                     for (int i = 0; i < row.LastCellNum; i++) 35                     { 36                         HSSFCell cell = (HSSFCell)row.GetCell(i); 37                         if (cell == null) 38                             continue; 39                         DataColumn column = new DataColumn(cell.StringCellValue); 40  41                         dt.Columns.Add(column); 42                     } 43                 } 44                 else 45                 { 46                     DataRow dtRow = dt.NewRow(); 47                     string rValue = ""; 48                     for (int i = 0, j = 0; i < row.LastCellNum; i++) 49                     { 50                         HSSFCell cell = (HSSFCell)row.GetCell(i); 51                         if (cell == null) 52                         { 53                             dtRow[i] = ""; 54                         } 55                         else 56                         { 57                             dtRow[j] = cell.ToString(); 58                             rValue = cell.ToString(); 59                             j++; 60                         } 61                     } 62                     if (string.IsNullOrEmpty(rValue.Trim())) 63                         break; 64                     dt.Rows.Add(dtRow); 65                 } 66                 n++; 67             } 68             return dt; 69  70         } 71   72

/// <summary>

/// Excel导出数据
/// </summary>
/// <param name="sbHtml">html标签</param>
/// <param name="fileName">文件名</param>
public static void ExportExcel(StringBuilder sbHtml, string fileName)
{
try
{
if (sbHtml.Length > 0)
{
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.Charset = "Utf-8";
//HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName + ".xls", System.Text.Encoding.UTF8));
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls" );
HttpContext.Current.Response.Write(sbHtml.ToString());
HttpContext.Current.Response.End();
}
}
catch (Exception ex)
{
Logger.WriteLog("-----------Excel导出数据异常-----------\r\n" + ex.ToString() + "\r\n");
}
}

 

转载于:https://www.cnblogs.com/jiebo/p/4281824.html

你可能感兴趣的文章
UUID库
查看>>
bookstore案例分析
查看>>
php正则:匹配(),{},[]小括号,大括号,中括号里面的内容
查看>>
java 签名RSA
查看>>
layui 表单遇到的小问题
查看>>
冲刺第一天
查看>>
分布式并行计算MapReduce
查看>>
零基础HTML5游戏制作教程 第6章 贪吃蛇的实现及代码
查看>>
非静态成员的sizeof
查看>>
Linux的SVN——RapidSVN及其diff与edit工具配置
查看>>
HTML标签
查看>>
hdu 5592 ZYB's Premutation(线段树优化)
查看>>
Interesting Yang Yui Triangle(hdu3304)
查看>>
ansible总结
查看>>
面试题1字符串的压缩
查看>>
几个孩子围成圈报数 当等于3的时候删除 链表实现 最终输出剩下孩子的编号
查看>>
BZOJ 1853
查看>>
mysql 综合
查看>>
js函数收集
查看>>
python初学的问题记录3-4
查看>>