asp.net DataTable导出 excel的方法记录(第三方)

官网:http://npoi.codeplex.com/

简单应用,主要是可以实现我们想要的简单效果,呵呵

需要引入dll,可以在官网下载,也可在下面下载

C#代码  收藏代码
  1. protected void getExcel(DataTable dt)  
  2.    {  
  3.        NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();  
  4.        NPOI.SS.UserModel.Sheet sheet = book.CreateSheet("test_01");  
  5.        NPOI.SS.UserModel.Row row = sheet.CreateRow(0);  
  6.        for (int i = 0; i < dt.Columns.Count; i++)  
  7.        {  
  8.            row.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);  
  9.        }  
  10.   
  11.        for (int i = 0; i < dt.Rows.Count; i++)  
  12.        {  
  13.            NPOI.SS.UserModel.Row row2 = sheet.CreateRow(i + 1);  
  14.            for (int j = 0; j < dt.Columns.Count; j++)  
  15.                row2.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());  
  16.        }  
  17.   
  18.   
  19.        //写入到客户端  
  20.        System.IO.MemoryStream ms = new System.IO.MemoryStream();  
  21.        book.Write(ms);  
  22.        Response.AddHeader("Content-Disposition", string.Format("attachment; filename=EmptyWorkbook.xls"));  
  23.        Response.BinaryWrite(ms.ToArray());  
  24.        book = null;  
  25.        ms.Close();  
  26.        ms.Dispose();  
  27.   
  28.    }  

EXCEL导入

C#代码  收藏代码
  1. HSSFWorkbook hssfworkbook;  
  2.         #region  
  3.         public DataTable ImportExcelFile(string filePath)  
  4.         {  
  5.             #region//初始化信息  
  6.   
  7.             try  
  8.             {  
  9.                 using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))  
  10.                 {  
  11.                     hssfworkbook = new HSSFWorkbook(file);  
  12.                 }  
  13.             }  
  14.             catch (Exception e)  
  15.             {  
  16.                 throw e;  
  17.             }  
  18.  
  19.             #endregion  
  20.   
  21.             NPOI.SS.UserModel.Sheet sheet = hssfworkbook.GetSheetAt(0);  
  22.             System.Collections.IEnumerator rows = sheet.GetRowEnumerator();  
  23.   
  24.             DataTable dt = new DataTable();  
  25.             for (int j = 0; j < (sheet.GetRow(0).LastCellNum); j++)  
  26.             {  
  27.                 dt.Columns.Add(Convert.ToChar(((int)'A') + j).ToString());  
  28.             }  
  29.   
  30.             while (rows.MoveNext())  
  31.             {  
  32.                 HSSFRow row = (HSSFRow)rows.Current;  
  33.                 DataRow dr = dt.NewRow();  
  34.   
  35.                 for (int i = 0; i < row.LastCellNum; i++)  
  36.                 {  
  37.                     NPOI.SS.UserModel.Cell cell = row.GetCell(i);  
  38.   
  39.   
  40.                     if (cell == null)  
  41.                     {  
  42.                         dr[i] = null;  
  43.                     }  
  44.                     else  
  45.                     {  
  46.                         dr[i] = cell.ToString();  
  47.                     }  
  48.                 }  
  49.                 dt.Rows.Add(dr);  
  50.             }  
  51.            return dt;  
  52.         }  
  53.         #endregion  

这样就可以读取一个EXCEL的文件了返回一个Datatable

原文地址:https://www.cnblogs.com/ranran/p/3918769.html