c# 生成excel并导出

用c#的NPOI读写Excel

1、整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet;行:Row;单元格Cell。
2、NPOI是POI的C#版本,NPOI的行和列的index都是从0开始
3、POI读取Excel有两种格式一个是HSSF,另一个是XSSF。 HSSF和XSSF的区别如下:
HSSF is the POI Project‘s pure Java implementation of the Excel ‘97(-2007) file format.
XSSF is the POI Project‘s pure Java implementation of the Excel 2007 OOXML (.xlsx) file format.
即:HSSF适用2007以前的版本,XSSF适用2007版本及其以上的。

以下是生成excel并导出的代码:
public void ExportErrorSongIds(long uid)
{
try
{
string fileName = "ErrorSongIds.xls"; // 文件名称
string filePath = Path.Combine(HttpRuntime.AppDomainAppPath, "Upload") + "/" + fileName;

// 1.检测是否存在文件夹,若不存在就建立个文件夹
string directoryName = Path.GetDirectoryName(filePath);
if (!Directory.Exists(directoryName))
{
Directory.CreateDirectory(directoryName);
}

// 2.解析单元格头部,设置单元头的中文名称
HSSFWorkbook workbook = new HSSFWorkbook(); // 工作簿
ISheet sheet = workbook.CreateSheet("失败歌曲"); // 工作表
IRow row = sheet.CreateRow(0);
row.CreateCell(0).SetCellValue("原始ID");
row.CreateCell(1).SetCellValue("歌曲名称");
row.CreateCell(2).SetCellValue("歌手名");
row.CreateCell(3).SetCellValue("失败原因");
BsonArray array = _songListService.getErrorExcel(uid);
int rowIndex = 1;
BsonDocument bd = null;
if (array != null && array.Count > 0)
{
for (int i = 0; i < array.Count; i++)
{
IRow rowTmp = sheet.CreateRow(rowIndex);
bd = (BsonDocument)array[i];
if (bd != null)
{
rowTmp.CreateCell(0).SetCellValue(bd.GetValue("sourceId").ToString());
rowTmp.CreateCell(1).SetCellValue(bd.GetValue("songName").ToString());
rowTmp.CreateCell(2).SetCellValue(bd.GetValue("singerName").ToString());
rowTmp.CreateCell(3).SetCellValue(string.IsNullOrEmpty(bd.GetValue("errorReason").ToString()) ? "" : bd.GetValue("errorReason").ToString());
rowIndex++;
}
}
}
// 4.生成文件
FileStream file = new FileStream(filePath, FileMode.Create);
workbook.Write(file);
file.Close();
Response.AppendHeader("Content-Disposition", "attachment;filename=ErrorSongIds.xls");
Response.ContentType = "application/ms-excel";
Response.WriteFile(filePath);
Response.Flush();
Response.End();
}
catch (Exception ex)
{
throw ex;
}
}

时间: 2024-10-20 10:09:57

c# 生成excel并导出的相关文章

ExtJS4 动态生成的grid导出为excel(纯前台)

搜索了蛮久,找到一些例子,因为我是初学者的缘故大多不知道怎么使用.. 研究了一下那个源码,搞到现在终于实现了基本的下载..解决了一个表格不能重复下载的小BUG,一个使用grid初始化发生的BUG 下面记录一下步骤..说不定下次还有用 1.下载需要用到js代码,我已经上传 http://download.csdn.net/detail/hu8471479/7281703 2.在你的html文件中加入引用,路径问题自己 注意下,下面是我的路径 <script type="text/javasc

extjs4 前台导出grid数据 生成excel,数据量大后台无法接收到数据

最近做的一个web项目使用的是extsj4 框架,需要一个导出excel功能,通过extjs4 自带的导出方法实现.在前台生成excel的代码,form提交传递到后台输出.前台grid数据超过1000行后导出数据后台无法接收.网上搜索了很多是tomcat传输数据大小默认为2m导致的,将tomcat的server.xml中的 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20

如何将数据库的表导出生成Excel?

1.如何通过元数据拿到数据库的信息? 2.如何用Java生成Excel表? 3.将数据库中的表导出生成Excel案例 如何通过元数据拿到数据库的信息 元数据:描述数据的数据 Java中使用元数据的两个方法 DatabaseMetaData 通过连接可以拿到的信息:数据库软件,所有数据库名,所有数据库里面的表名,描述数据库的元数据 ResultSetMetaData 拿到的表结构信息:获得表的列数目 类型和属性 ,描述数据库表的元数据 DatabaseMetaData 的使用学习 @Test//

实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件

今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多都是以json数据填充的.在导入excel填充json数据到页面时,真的让我差点吐血了.在做这个导入导出的时候,那一个礼拜都是黑暗的. 好了,废话不多说了,我今天就给大家展示这个两个功能的核心点,excel生成json数据和json数据生成excel文件. 一:从上传文件到服务器,后台java解析,

PHP导出生成Excel文件

PHP导出生成Excel首先需要下载安装office扩展 可以自行下载,也可以通过composer下载安装 个人比较建议后者 代码很简单  不废话直接上代码 /** * @param $file_name String 文件名称 * @param $title String 标题 * @param $order String 中文的表格序以逗号方式连接 * @param $data array 数据集 * @param $data_order String 数据集合key以逗号的方式连接 */

JAVA利用JXL导出/生成 EXCEL

/** * 导出导出采暖市场部收入.成本.利润明细表 * @author JIA-G-Y */ public String exporExcel(String str) { String path = str + "收入.成本.利润明细表.xls"; try { List<WholesaleAgreementMaterialExportExcelTemplate> list = agreementDao.selectAllWholeDetails(); // 打开文件 Wr

Json数据导出生成Excel

最近在做一个导入导出Excel的功能,导出其他类型的文件都比较熟悉,但是导入跟导出一个Excel还是稍微特殊点.根据这次的经验,写了个导出的小样例. 总体思路就是json数据的key,value跟Excel的行列转换,还有就是解决数据在Excel表格中存放的位置,区域问题. 这里要用到的两个小插件,一个是xslx.js,一个是FileSaver.js,前者是来处理生成Excel的,后者是用来把文件下载保存到本地的. 下载地址: https://github.com/eligrey/FileSav

使用POI做的一个生成Excel的工具类。包含了导出Excel和解析Excel方法

PoiExcelUtils.java /** * */ package com.common.office; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.text.NumberFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.List;

导出数据生成Excel(MVC)

/// <summary> /// 生成Excel /// </summary> /// <returns></returns> public FileResult ExportProductInfo() { List<Aniuge_spu> spuList = ProductBusiness.GetInstance().GetProdutInfo(); StringBuilder sb = new StringBuilder(); sb.App