• 二、操作NPOI_从数据库中导出数据到Excel_支持.xls格式


     1 using NPOI.HSSF.UserModel;
     2 using NPOI.SS.UserModel;
     3 using System;
     4 using System.Collections.Generic;
     5 using System.Linq;
     6 using System.Web;
     7 using System.Web.Mvc;
     8 using System.IO;
     9 using System.Data.SqlClient;
    10 using System.Data;
    11 
    12 namespace ExportDataFromDatabaseToExcel.Controllers
    13 {
    14     public class ExportController : Controller
    15     {
    16         //视图页
    17         public ActionResult DiplayFirstPage()
    18         {
    19             return View();
    20         }
    21 
    22         /// NPOI下载电子表格.xls版本
    23         /// </summary>
    24         /// <returns></returns>
    25         public ActionResult ExportToExcel02()
    26         {
    27             //实例化数据库连接对象,构造函数传入数据库链接地址
    28             using (SqlConnection connection = new SqlConnection("Data Source=KAKA-20200829GR;Initial Catalog=DbForNPOI;Integrated Security=True"))
    29             {
    30                 //实例化数据库适配器对象,根据sql进行匹配
    31                 using (SqlDataAdapter adapter = new SqlDataAdapter("select * from BookInfo", connection))
    32                 {
    33                     //实例化数据表对象
    34                     DataTable dataTable = new DataTable();
    35 
    36                     //填充数据表
    37                     adapter.Fill(dataTable);
    38 
    39                     //实例化工作簿对象
    40                     HSSFWorkbook hSSFWorkbook = new HSSFWorkbook();
    41 
    42                     //工作簿中创建数据表,并指定名字
    43                     ISheet sheet = hSSFWorkbook.CreateSheet("图书信息表");
    44 
    45                     //生成标题行,下标为0即第一行
    46                     IRow excelTile = sheet.CreateRow(0);
    47                     excelTile.CreateCell(0).SetCellValue("图书编号");
    48                     excelTile.CreateCell(1).SetCellValue("图书名称");
    49                     excelTile.CreateCell(2).SetCellValue("图书作者");
    50 
    51                     //自定义行号,作为自增种子,因为生变定义了标题行,所以这里从第二行开始,即下标从1尅开始
    52                     int RowIndex = 1;
    53 
    54                     //将数据库中的数据导入到Excel中
    55                     foreach (DataRow dataRow in dataTable.Rows)
    56                     {
    57                         IRow rowBody = sheet.CreateRow(RowIndex);
    58                         rowBody.CreateCell(0).SetCellValue(int.Parse(dataRow["BookId"] + ""));
    59                         rowBody.CreateCell(1).SetCellValue(dataRow["BookName"] + "");
    60                         rowBody.CreateCell(2).SetCellValue(dataRow["Author"] + "");
    61                         RowIndex++;
    62                     }
    63 
    64                     //实例化内存流
    65                     MemoryStream memoryStream = new MemoryStream();
    66 
    67                     //将数据写入内存流中
    68                     hSSFWorkbook.Write(memoryStream);
    69                     memoryStream.Seek(0, SeekOrigin.Begin);
    70 
    71                     //释放适配器对象资源
    72                     adapter.Dispose();
    73 
    74                     //关闭数据库连接
    75                     connection.Close();
    76 
    77                     //返回文件(直接下载)
    78                     return File(memoryStream, "application/vnd-excel", "图书信息表.xls");
    79                 }
    80             }
    81         }
    82     }
    83 }
     1 @{
     2     Layout = null;
     3 }
     4 
     5 <!DOCTYPE html>
     6 
     7 <html>
     8 <head>
     9     <meta name="viewport" content="width=device-width" />
    10     <title>DiplayFirstPage</title>
    11     <link href="~/Content/bootstrap.css" rel="stylesheet" />
    12 </head>
    13 <body>
    14     <div>
    15         <input type="button" name="name" value="ExportToExcel01" onclick="location.href='/Export/ExportToExcel01'" class="btn btn-success" />
    16         <hr />
    17         <input type="button" name="name" value="ExportToExcel02" onclick="location.href='/Export/ExportToExcel02'" class="btn btn-warning" />
    18     </div>
    19 </body>
    20 </html>
  • 相关阅读:
    实现 ajax 多项选择框
    Ajax 文件上传之PHP心得
    php tree生成树分享
    基于JQuery框架的AJAX
    jQuery Ajax 全解析
    asp 下载函数
    10元奥运纪念钞明发行 与人民币等值流通
    jQuery(Ajax)/PHP/MySQL实现搜索自动提示功能
    隔行扫描和逐行扫描(interlace and progressive )
    VGA 输出调试
  • 原文地址:https://www.cnblogs.com/ABC-wangyuhan/p/13755144.html
Copyright © 2020-2023  润新知