封装NPOI导出含下拉列表的Excel
/// <summary>
/// 绑定数据的方法
/// </summary>
/// <param name="ssfworkbook">HSSFWorkbook</param>
/// <param name="sheet1">HSSFSheet</param>
/// <param name="cateDt">数据源</param>
/// <param name="sheetName">页名</param>
/// <param name="dispName">显示名称</param>
/// <param name="row">属于第几列</param>
/// <param name="nextCount">相隔下一列的位置(只要有一列为1,后面便都为1,以此类推)</param>
private void GetCategoryData(HSSFWorkbook ssfworkbook, HSSFSheet sheet1, DataTable cateDt, string sheetName, string dispName, int row, int nextCount)
{
try
{
HSSFSheet sheet2 = ssfworkbook.CreateSheet("Sht" + sheetName);
int indexCate = ;
ssfworkbook.SetSheetHidden(row - nextCount, true);//隐藏 foreach (DataRow cateItem in cateDt.Rows)
{
sheet2.CreateRow(indexCate).CreateCell().SetCellValue(cateItem[dispName].ToString());//列数据
indexCate++;
}
HSSFName range = ssfworkbook.CreateName();//创建名称
range.Reference = "Sht" + sheetName + "!$A$1:$A$" + indexCate;//格式
range.NameName = sheetName; //将下拉列表添加
CellRangeAddressList regions = null;
regions = new CellRangeAddressList(, , row - , row - );
DVConstraint constraint = DVConstraint.CreateFormulaListConstraint(sheetName);
HSSFDataValidation dataValidate = new HSSFDataValidation(regions, constraint);
sheet1.AddValidationData(dataValidate);
}
catch { }
}
/// <summary>
/// 设置Excel表头(数组Length必须相同)
/// </summary>
/// <param name="strName">Excel中的名称</param>
/// <param name="width">宽</param>
/// <param name="headerRow">HSSFRow</param>
/// <param name="sheet1">HSSFSheet</param>
/// <param name="HSSFWorkbook">ssfworkbook</param>
private string SetUpExcelTitle(HSSFWorkbook ssfworkbook, string[] strName, int[] width, HSSFRow headerRow, HSSFSheet sheet1)
{
try
{
if (strName.Length != width.Length)
{
return "数组长度不同!";
}
HSSFFont fontTitle = ssfworkbook.CreateFont();
fontTitle.FontHeightInPoints = ;
fontTitle.Boldweight = HSSFFont.BOLDWEIGHT_NORMAL;
HSSFCellStyle hssfCellTitle = ssfworkbook.CreateCellStyle();
hssfCellTitle.SetFont(fontTitle); for (int i = ; i < strName.Length; i++)
{
//设置表头
headerRow.CreateCell(i).SetCellValue(strName[i]);
//设置表头的宽度
sheet1.SetColumnWidth(i, width[i]);
headerRow.GetCell(i).CellStyle = hssfCellTitle;
}
return "ok";
}
catch (Exception ex)
{
return ex.Message;
}
}
/// <summary>
/// 设置Excel内容
/// </summary>
/// <param name="values">内容</param>
/// <param name="dataRow">HSSFRow</param>
private void SetUpExcelContent(string[] values, HSSFRow dataRow)
{
for (int i = ; i < values.Length; i++)
{
//填充数据
dataRow.CreateCell(i).SetCellValue(values[i]);
}
}
封装NPOI导出含下拉列表的Excel的更多相关文章
- NPOI导出多张图片到Excel
常用NPOI导出数据到excel,但没有试过如何导出图片.NPOI最大的特点就是不依赖于Excel组件,服务端不需要安装Excel.在单元格中插入图片主要是用HSSFClientAnchor对象.他有 ...
- C# NPOI导出Excel和EPPlus导出Excel比较
系统中经常会使用导出Excel的功能. 之前使用的是NPOI,但是导出数据行数多就报内存溢出. 最近看到EPPlus可以用来导出Excel,就自己测了下两者导出上的差异. NPIO官网地址:http: ...
- C# NPOI导出Excel和EPPlus导出Excel
转自:http://www.cnblogs.com/tanpeng/p/6155749.html 系统中经常会使用导出Excel的功能.之前使用的是NPOI,但是导出数据行数多就报内存溢出. 最近看到 ...
- .NET Core使用NPOI导出复杂,美观的Excel详解
前言: 这段时间一直专注于数据报表的开发,当然涉及到相关报表的开发数据导出肯定是一个不可避免的问题啦.客户要求要导出优雅,美观的Excel文档格式的来展示数据,当时的第一想法就是使用NPOI开源库来做 ...
- NPOI导出Excel (C#) 踩坑 之--The maximum column width for an individual cell is 255 charaters
/******************************************************************* * 版权所有: * 类 名 称:ExcelHelper * 作 ...
- 基于NPOI导出和导入Excel
概述 NPOI,顾名思义,就是POI的.NET版本.NPOI就是用.NET语言编写的一套数据导出Excel的开源项目,支持XML.xls.xlsx.ppt等格式..NET不仅实现Excel导出还可以实 ...
- (C#)使用NPOI导出Excel
在做业务型的软件时,经常需要将某些数据导出,本文介绍了在Winform或Asp.net中使用NPOI(POI 项目的 .NET 版本)来操作Excel文件,而无需安装Office. 首先,需要获取NP ...
- Asp.Net 使用Npoi导出Excel
引言 使用Npoi导出Excel 服务器可以不装任何office组件,昨天在做一个导出时用到Npoi导出Excel,而且所导Excel也符合规范,打开时不会有任何文件损坏之类的提示.但是在做导入时还是 ...
- NPOI导出EXCEL 打印设置分页及打印标题
在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方法,但一直都没有起到作用.经过研究是要设置 sheet1.FitToPage = false; 而 ...
随机推荐
- Python:安装mssql模块功能,并实现与sqlserver连接、查询
由于我系统是x64系统,所以下载python2.7 x64.下载地址:https://www.python.org/downloads/release/python-2712/, 经过测试发现这个版本 ...
- 重复点击主界面(TabBar)按钮刷新界面--点击状态栏回到顶部
1.监听按钮点击 2.判断是否是点击的同一个按钮(记录上次点击的按钮) 3.当重复点击相同按钮时,需要获取当前按钮对应控制器刷新界面 3.1 判断是否重复点击按钮,代码写在哪里? ...
- Swift实战-QQ在线音乐(第二版)
此版本使用百度音乐接口,原因是豆瓣接口很多歌曲没办法找到歌词. 此版本添加了歌词的显示.上一曲.下一曲的实现.歌曲列表指明当前歌曲. 下面来看一下实现过程>>> 一.项目准备: 百度 ...
- JAVA-面向对象-多态
多态 1.方法重载 2.方法重写 3.对象转型 4.抽象(可以定义类和方法) (关键字 abstract) ( 如: public abstract class robot )(不能修饰 ...
- SQL order 排序
select * from emp;
- codevs 1203 判断浮点数是否相等
http://codevs.cn/problem/1203/ 1203 判断浮点数是否相等 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题解 查看运行 ...
- [原创]Scala学习:for,function,lazy
1.for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环.Scalar的循环说明如下的各种形式: 1)Scala中for循环最简单的语法是: for( var x <- Rang ...
- java数组获取最值
import java.util.Random; /** * 获取最大值最小值 * @author shaobn * */ public class Test2 { public static voi ...
- 【sublime】解决汉字输入的办法——InputHelper;在sublime中输入汉字==》InputHelper方法
手工安装办法: cd ~/.config/sublime-text-2/Packages #如果是sublime3就改一下 git clone https://github.com/xgenvn/I ...
- 狗屁不通的“视频专辑:零基础学习C语言(小甲鱼版)”(2)
前文链接:狗屁不通的“视频专辑:零基础学习C语言(小甲鱼版)”(1) 小甲鱼在很多情况下是跟着谭浩强鹦鹉学舌,所以谭浩强书中的很多错误他又重复了一次.这样,加上他自己的错误,错谬之处难以胜数. 由于拙 ...