在web开发中常用到生成excel模板,在用excel poi生成excel模板时,常用到生成excel下拉菜单。下面是生成excel下拉菜单的代码:
package poiexcel;
import java.io.FileOutputStream;
import java.util.Date;
import org.apache.poi.hssf.usermodel.DVConstraint;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDataValidation;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.CellRangeAddressList;
public class POI
{
public static void main(String [] args)
{
String [] list={"东软","华信","SAP","海辉"};
new POI().createListBox(list);
return;
}
public void createListBox (String [] list)
{
//文件初始化
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
//在第一行第一个单元格,插入下拉框
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
//普通写入操作
cell.setCellValue("请选择");//这是实验
//生成下拉列表
//只对(0,0)单元格有效
CellRangeAddressList regions = new CellRangeAddressList(0,0,0,0);
//生成下拉框内容
DVConstraint constraint = DVConstraint.createExplicitListConstraint(list);
//绑定下拉框和作用区域
HSSFDataValidation data_validation = new HSSFDataValidation(regions,constraint);
//对sheet页生效
sheet.addValidationData(data_validation);
//写入文件
FileOutputStream fileOut;
try {
fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//结束
System.out.println("Over");
}
}
上面的代码中,下拉菜单的内容是在list中写死的,在开发的过程中往往是会用到“动态”生成下拉菜单的内容,在这里记录代码,一来有助于自己积累,二来将经验与大家分享:
public void downLoadModle() throws IOException, RowsExceededException, WriteException{
String jgId = this.getParameter("jgId");
List<BaseTrainType> childrenList = (List<BaseTrainType>) pxlbManager.findByHql(" from BaseTrainType b where b.parentId="+pxlb+" and b.id in (select trainTypeId from OrgBaseTrainType where orgBaseId="+jgId+")");
String path = "/excel模板.xls";
String templetDire = this.getRequest().getSession().getServletContext().getRealPath("/common");
FileInputStream finput = new FileInputStream(path); //从工程目录下下载模板
POIFSFileSystem pss = new POIFSFileSystem(finput);
HSSFWorkbook workbook = new HSSFWorkbook(pss);
//读取Sheet
HSSFSheet sheet = workbook.getSheetAt(0);
CellRangeAddressList regions = new CellRangeAddressList(1, 65535, 12, 12); //excel下拉菜单作用域,例子中是第12列(从0开始)
String [] list= new String[childrenList.size()];;
for (int i=0;i<childrenList.size();i++) {
list[i] = childrenList.get(i).getTypeNum()+"-"+childrenList.get(i).getTypeName(); //加载下拉菜单中的内容
}
DVConstraint constraint = DVConstraint.createExplicitListConstraint(list); //将list中的内容写入到excel中
HSSFDataValidation data_validation = new HSSFDataValidation(regions,constraint); //绑定下拉菜单和作用域
sheet.addValidationData(data_validation); //对sheet生效
this.getResponse().setContentType("application/vnd.ms-excel");
String fileName = URLEncoder.encode(name, "UTF-8");
this.getResponse().setHeader("Content-Disposition","attachment; filename=" + fileName+pxbjNum+ ".xls");
ServletOutputStream out = this.getResponse().getOutputStream();
workbook.write(out);
}
分享到:
相关推荐
poi 生成excel模板,下拉选项,批注。现在有模板中插入下拉信息
1.java使用poi生成excel插入图表曲线 2.demo包含完成jar包 3.主要用途是过滤数据自动生成曲线图
poi作为导出excel常用的工具,方便快捷。对于excel指定下拉列表的列,如何生成呢?本文提供如何生成下拉列表的excel列
poi动态生成excel中下拉菜单,动态数据源,支持2003版本和2007版本
POI生成Excel POI读取Excel java操作Excel Servlet生成Excel web项目,包含含读取Excel与生成Excel方法
使用poi生成Excel所需要的jar包,poi-3.9.jar
Java POI 生成Excel时显示货币格式
Demo1 把数据写到excel表中, Demo2 在Demo1生成的excel中添加新的数据 Demo3 和Demo1一样生成一个excel表格 剩下的那个是从数据库取数据放到excel表格
apache软件基金 poi组件 轻松实现,生成excel报表
poi生成excel及合并单元格示例,详见文章http://blog.csdn.net/geloin/article/details/17219885
Java用POI实现根据Excel表格模板生成新的Excel并实现数据输出...
平时工作中用到的一些技术点,拿出来和大家共享一下。 有些功能比较粗糙,如果大家有更加完善的示例或建议,欢迎交流。 1、jpg图片缩略图:ImageUtil ...2、poi创建excel:CDSHdlReport 3、计算表达式求值:Cal
poi excel poi excel poi excel poi excel poi excel poi excel poi excel poi excel
java代码调用poi架包, 把数据生成excel文件, 导出到文件
poi生成excel报表合并列和列,按规范构造数据集就可以,mergeRow 合并行,genMergeCellByContent 合并头
JAVA使用POI生成简单的Excel文件并下载,并设置了字体大小。
POI操作Excel生成水印,该水印其实就是一个图片,该代码是将文字生成图片,再将图片变成水印的。
使用poi在excel中生成各种常见的图像,比如饼状图(普通饼状图、三D图,环状体、折线图、柱状图、等~~)
使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用
poi 导出EXCEL 例子 poi 导出EXCEL 例子poi 导出EXCEL 例子poi 导出EXCEL 例子