封装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; 而 ...
随机推荐
- C++Primer 第十一章
//1.关键容器支持高效的关键字查找和访问. map 关联数组:保存关键字-值对.通过关键字来查找值. set 关键字即值,即只保存关键字的容器. multimap 关键字可重复出现的map mult ...
- JAVA-面向对象-多态
多态 1.方法重载 2.方法重写 3.对象转型 4.抽象(可以定义类和方法) (关键字 abstract) ( 如: public abstract class robot )(不能修饰 ...
- 刨根问底U3D---从一个空类说起
这篇文章包含哪些内容 这篇文章从一个Empty的MonoBehaviour入手,首先讨论一下C#的修饰符internal,default,virtual,sealed 接着讨论一下MonoBehavi ...
- hduoj 4708 Rotation Lock Puzzle 2013 ACM/ICPC Asia Regional Online —— Warmup
http://acm.hdu.edu.cn/showproblem.php?pid=4708 Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/O ...
- MAT之prim算法
prim算法 边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权. 最小生成树(MST):权值最小的生成树. 生成树和最小生成树的应用:要连通n个城市需要n-1 ...
- C#删除xml中某个节点的子节点方法
if (File.Exists(xmlFilePath)) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlFilePath); Xm ...
- Java基础(32):String与StringBuilder、StringBuffer的区别(String类)
在Java中,除了可以使用 String 类来存储字符串,还可以使用 StringBuilder 类或 StringBuffer 类存储字符串,那么它们之间有什么区别呢? String 类具有是不可变 ...
- ligerui_ligerTree_002_利用JavaScript代码配置ligerTree节点
利用JavaScript代码配置ligerTree节点: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 效果图: <%@ p ...
- [转]]将 ASP.NET MVC3 Razor 项目部署到虚拟主机中
原链接:http://www.cnblogs.com/taven/archive/2011/08/14/2138077.html 国内很多网站空间都只支持.NET 2.0 和 .NET 3.0 3.5 ...
- 夺命雷公狗—angularjs—14—$location的作用
废话不多说看下,我们直接来走代码看下效果如何 <!DOCTYPE html> <html lang="en"> <head> <meta ...