调用存储过程取到数据通过NPOI存到Excel中
//调用
public ActionResult GenerateExcel() {
DataTable headerTable = new DataTable();
headerTable.Columns.Add("Status_Id", Type.GetType("System.String"));
headerTable.Columns.Add("Status_Name", Type.GetType("System.String"));
headerTable.Columns.Add("Is_Now", Type.GetType("System.String"));
headerTable.Columns.Add("Curr_User_Id", Type.GetType("System.String"));
headerTable.Columns.Add("Flow_Id", Type.GetType("System.String"));
DataRow headerRow = headerTable.NewRow();
headerRow["Status_Id"] = "Status_Id";
headerRow["Status_Name"] = "Status_Name";
headerRow["Is_Now"] = "Is_Now";
headerRow["Curr_User_Id"] = "Curr_User_Id";
headerRow["Flow_Id"] = "Flow_Id";
headerTable.Rows.Add(headerRow);
DataTable contentTable = getDataByProc();
generateExcelOP(headerTable, contentTable);
ViewData["result"] = "Create successfully";
return View("ExcelUpload");
}
//生成Excel
public void generateExcelOP(DataTable headerTable,DataTable dt) {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.CreateSheet() as HSSFSheet;
//excel header info
HSSFRow headerRow = sheet.CreateRow(0) as HSSFRow;
for(int i = 0 ;i < headerTable.Columns.Count;i++){
HSSFCell headerCell = headerRow.CreateCell(i) as HSSFCell;
headerCell.SetCellValue(headerTable.Rows[0][i].ToString());
headerRow.Cells.Add(headerCell);
}
//excel content info
for(int m =0 ;m < dt.Rows.Count;m++){
HSSFRow row = sheet.CreateRow((m+1)) as HSSFRow;
for (int n = 0; n < dt.Columns.Count;n++ )
{
HSSFCell cell = row.CreateCell(n) as HSSFCell;
cell.SetCellValue(dt.Rows[m][n].ToString());
row.Cells.Add(cell);
}
}
FileStream fs = new FileStream(@"D:\data\output.xls", FileMode.Create);
workbook.Write(fs);
fs.Flush();
fs.Close();
workbook.Clear();
}
//获取数据
public DataTable getDataByProc() {
DataTable dt = new DataTable();
string callName = "GetAuthHistory";
string devConn = System.Configuration.ConfigurationManager.ConnectionStrings["devConn"].ToString();
using(SqlConnection conn = new SqlConnection(devConn)){
SqlCommand command = new SqlCommand(callName, conn);
command.CommandType = CommandType.StoredProcedure;
SqlParameter[] sps = {
new SqlParameter("@currPage",SqlDbType.Int),
new SqlParameter("@pageSize",SqlDbType.Int)
};
sps[0].Value = 1;
sps[1].Value = 20;
foreach(SqlParameter sp in sps){
command.Parameters.Add(sp);
}
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = command;
sda.Fill(dt);
}
return dt;
}
调用存储过程取到数据通过NPOI存到Excel中的更多相关文章
- python 数据如何保存到excel中--xlwt
第一步:下载xlwt 首先要下载xlwt,(前提是你已经安装好了Python) 下载地址: https://pypi.python.org/pypi/xlwt/ 下载第二个 第二步:安装xl ...
- ffmpeg从AVFrame取出yuv数据到保存到char*中
ffmpeg从AVFrame取出yuv数据到保存到char*中 很多人一直不知道怎么利用ffmpeg从AVFrame取出yuv数据到保存到char*中,下面代码将yuv420p和yuv422p的数 ...
- 数据可视化之powerBI基础(十一)Power BI中的数据如何导出到Excel中?
https://zhuanlan.zhihu.com/p/64415543 把Excel中数据加载到PowerBI中我们都已经熟悉了,但是怎么把在PowerBI中处理好的数据导出到Excel中呢?毕竟 ...
- 把数据库里面的stu表中的数据,导出到excel中
# 2.写代码实现,把我的数据库里面的stu表中的数据,导出到excel中 #编号 名字 性别 # 需求分析:# 1.连接好数据库,写好SQL,查到数据 [[1,'name1','男'],[1,'na ...
- python爬取数据保存到Excel中
# -*- conding:utf-8 -*- # 1.两页的内容 # 2.抓取每页title和URL # 3.根据title创建文件,发送URL请求,提取数据 import requests fro ...
- 「拉勾网」薪资调查的小爬虫,并将抓取结果保存到excel中
学习Python也有一段时间了,各种理论知识大体上也算略知一二了,今天就进入实战演练:通过Python来编写一个拉勾网薪资调查的小爬虫. 第一步:分析网站的请求过程 我们在查看拉勾网上的招聘信息的时候 ...
- 使用Npoi向Excel中插入图片
先把数据库中的数据都导入到Excel表格中,把图片地址的路径全部转成绝对路径. 使用Npoi读取刚导出的Excle表格,把图片那个单元格的图片路径读出来,然后用文件流读取图片,然后通过Npoi把图片放 ...
- 用Python提取XML里的内容,存到Excel中
最近做一个项目是解析XML文件,提取其中的chatid和lt.timestamp等信息,存到excel里. 1.解析xml,提取数据 使用python自带的xml.dom中的minidom(也可以用l ...
- c# 应用NPOI 获取Excel中的图片,保存至本地的算法
要求:读取excel中的图片,保存到指定路径 思路: 利用NPOI中 GetAllPictures()方法获取图片信息 步骤: 1.新建一个Windows窗体应用程序 2.桌面新建一个excel,贴 ...
随机推荐
- 关于BUG管理工具的操作总结。(禅道)
禅道是第一款国产的优秀开源项目管理软件.先进的管理思想,合理的软件架构,简洁实效的操作,优雅的代码实现,灵活的扩展机制,强大而易用的api 调用机制,多语言支持,多风格支持,搜索功能,统计功能——这一 ...
- STM32时钟初始化函数SystemInit()详解【转】
花了一天的时间,总算是了解了SystemInit()函数实现了哪些功能,初学STM32,,现记录如下(有理解错误的地方还请大侠指出): 使用的是3.5的库,用的是STM32F107VC,开发环境RVM ...
- 6-23 EDM的报告
EDM营销(Email Direct Marketing)也即:Email营销. 目的:数据分析.制定一对一的个性化数据.提高用户访问率.EDM是一对一的沟通,让你的用户感觉到尊重, 方式:选择强有力 ...
- python中的缓存技术
python缓存技术 def console(a,b): print('进入函数') return (a,b) print(console(3,'a')) print(console(2,'b')) ...
- 由Resin引发的java.lang.IllegalArgumentException: object is not an instance of declaring class(反射中使用)思考
文章目录 背景 原因 解决办法 背景 在java agent中抓取Resin的 某些方法,在invoke的时候出现错误 java.lang.IllegalArgumentException: obje ...
- 1089 Insert or Merge (25 分)
According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...
- Centos 能ping通域名和公网ip但是网站不能够打开,服务器拒绝了请求。打开80端口解决。
博客搬迁,给你带来的不便,敬请谅解! http://www.suanliutudousi.com/2017/10/29/centos-%E8%83%BDping%E9%80%9A%E5%9F%9F%E ...
- Maven Optional & Exclusions使用区别
Optional和Exclusions都是用来排除jar包依赖使用的,两者在使用上却是相反. Optional定义后,该依赖只能在本项目中传递,不会传递到引用该项目的父项目中,父项目需要主动引用该依赖 ...
- PL/SQL Developer 查看查询的执行计划
https://zhuanlan.zhihu.com/p/65771352 通过 PL/SQL Developer 查看查询的执行计划 1 什么是执行计划 执行计划是一条查询语句在 Oracle 中的 ...
- pandas 索引、选取和过滤
Series索引的工作方式类似于NumPy数组的索引,不过Series的索引值不只是整数,如: import numpy as np import pandas as pd from pandas i ...