- 浏览: 282955 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
北方狼:
请问,当表格列数过多时,除了调整pdf页面宽度,能否设置分页显 ...
利用itext操作pdf从数据库导出大量数据--功能汇总(一) -
15817048604:
.....................
利用itext操作pdf从数据库导出大量数据--添加水印(四) -
laoma102:
顶个,谢楼主
代理模式,JDK动态代理,SpringAOP来龙去脉 -
穷途末路:
给力,谢谢分享
Excel2003和Excel2007对下拉选择和下拉级联选择的操作以及java程序的调用 -
weir2009:
复杂的交叉表crosstab 怎么处理?
利用itext操作pdf从数据库导出大量数据--功能汇总(一)
Excel2007和Excel2003的部分功能菜单有所调整
比如2003的“插入-名称”,在2007中更为到“公式-定义的名称”
比如2003的“插入-名称-指定-首行”,在2007中更为到“公式-定义的名称-根据所选内容创建-首行”
Excel功能点应用:
相对位置和绝对位置,特别在某个行列的数据是参考另外某个行列的数据而变动的,相对位置的表示方法:A8、B9等等,绝对位置的表示方法:$A$8、$B$9(就是使用美元符号$)
隐藏页的数据引用。
2003中,假设sheet1是隐藏页,并先定义好数据(公式-定义的名称→定义;在sheet1中定义数据源名称:省份;引用位置:=Sheet1!$A$1:$A$5),然后在“添加”数据,设置数据的有效性选项(数据-数据有效性-序列;来源填写“=省份”)
2007中,假设sheet1是隐藏页,并先定义好数据(插入→名称→定义;在sheet1中定义数据源名称:省份;引用位置:=Sheet1!$A$1:$A$5),然后在“添加”数据,设置数据的有效性选项(数据-数据有效性-序列;来源填写“=省份”)
比如2003的“插入-名称”,在2007中更为到“公式-定义的名称”
比如2003的“插入-名称-指定-首行”,在2007中更为到“公式-定义的名称-根据所选内容创建-首行”
Excel功能点应用:
相对位置和绝对位置,特别在某个行列的数据是参考另外某个行列的数据而变动的,相对位置的表示方法:A8、B9等等,绝对位置的表示方法:$A$8、$B$9(就是使用美元符号$)
隐藏页的数据引用。
2003中,假设sheet1是隐藏页,并先定义好数据(公式-定义的名称→定义;在sheet1中定义数据源名称:省份;引用位置:=Sheet1!$A$1:$A$5),然后在“添加”数据,设置数据的有效性选项(数据-数据有效性-序列;来源填写“=省份”)
2007中,假设sheet1是隐藏页,并先定义好数据(插入→名称→定义;在sheet1中定义数据源名称:省份;引用位置:=Sheet1!$A$1:$A$5),然后在“添加”数据,设置数据的有效性选项(数据-数据有效性-序列;来源填写“=省份”)
package com.fruitking.caipiao; import java.io.FileOutputStream; import java.io.IOException; 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.ss.usermodel.DataValidation; import org.apache.poi.ss.usermodel.Name; import org.apache.poi.ss.util.CellRangeAddressList; public class TestExcelSelect { public static void main(String [] args) throws IOException { HSSFWorkbook workbook = new HSSFWorkbook();//excel文件对象 HSSFSheet userinfosheet1 = workbook.createSheet("用户信息表-1");//工作表对象 HSSFSheet userinfosheet2 = workbook.createSheet("用户信息表-2");//工作表对象 //创建一个隐藏页和隐藏数据集 TestExcelSelect.creatHideSheet(workbook, "hideselectinfosheet"); //设置名称数据集 TestExcelSelect.creatExcelNameList(workbook); //创建一行数据 TestExcelSelect.creatAppRow(userinfosheet1, "许果",1); TestExcelSelect.creatAppRow(userinfosheet1, "刘德华",2); TestExcelSelect.creatAppRow(userinfosheet1, "刘若英",3); TestExcelSelect.creatAppRow(userinfosheet2, "张学友",1); TestExcelSelect.creatAppRow(userinfosheet2, "林志玲",2); TestExcelSelect.creatAppRow(userinfosheet2, "林熙蕾",3); //生成输入文件 FileOutputStream out=new FileOutputStream("success.xls"); workbook.write(out); out.close(); } /** * 名称管理 * @param workbook */ public static void creatExcelNameList(HSSFWorkbook workbook){ //名称管理 Name name; name = workbook.createName(); name.setNameName("provinceInfo"); name.setRefersToFormula("hideselectinfosheet!$A$1:$E$1"); name = workbook.createName(); name.setNameName("浙江"); name.setRefersToFormula("hideselectinfosheet!$B$2:$K$2"); name = workbook.createName(); name.setNameName("山东"); name.setRefersToFormula("hideselectinfosheet!$B$3:$I$3"); name = workbook.createName(); name.setNameName("江西"); name.setRefersToFormula("hideselectinfosheet!$B$4:$E$4"); name = workbook.createName(); name.setNameName("江苏"); name.setRefersToFormula("hideselectinfosheet!$B$5:$I$5"); name = workbook.createName(); name.setNameName("四川"); name.setRefersToFormula("hideselectinfosheet!$B$6:$K$6"); } /** * 创建隐藏页和数据域 * @param workbook * @param hideSheetName */ public static void creatHideSheet(HSSFWorkbook workbook,String hideSheetName){ HSSFSheet hideselectinfosheet = workbook.createSheet(hideSheetName);//隐藏一些信息 //设置下拉列表的内容 String[] provinceList = {"浙江","山东","江西","江苏","四川"}; String[] zjProvinceList = {"浙江","杭州","宁波","温州","台州","绍兴","金华","湖州","丽水","衢州","舟山"}; String[] sdProvinceList = {"山东","济南","青岛","烟台","东营","菏泽","淄博","济宁","威海"}; String[] jxProvinceList = {"江西","南昌","新余","鹰潭","抚州"}; String[] jsProvinceList = {"江苏","南京","苏州","无锡","常州","南通","泰州","连云港","徐州"}; String[] scProvinceList = {"四川","成都","绵阳","自贡","泸州","宜宾","攀枝花","广安","达州","广元","遂宁"}; //在隐藏页设置选择信息 HSSFRow provinceRow = hideselectinfosheet.createRow(0); TestExcelSelect.creatRow(provinceRow, provinceList); HSSFRow zjProvinceRow = hideselectinfosheet.createRow(1); TestExcelSelect.creatRow(zjProvinceRow, zjProvinceList); HSSFRow sdProvinceRow = hideselectinfosheet.createRow(2); TestExcelSelect.creatRow(sdProvinceRow, sdProvinceList); HSSFRow jxProvinceRow = hideselectinfosheet.createRow(3); TestExcelSelect.creatRow(jxProvinceRow, jxProvinceList); HSSFRow jsProvinceRow = hideselectinfosheet.createRow(4); TestExcelSelect.creatRow(jsProvinceRow, jsProvinceList); HSSFRow scProvinceRow = hideselectinfosheet.createRow(5); TestExcelSelect.creatRow(scProvinceRow, scProvinceList); //设置隐藏页标志 workbook.setSheetHidden(workbook.getSheetIndex(hideSheetName), true); } /** * 创建一列应用数据 * @param userinfosheet1 * @param userName */ public static void creatAppRow(HSSFSheet userinfosheet1,String userName,int naturalRowIndex){ //构造一个信息输入表单,用户姓名,出生省份,出生城市 //要求省份是可以下拉选择的,出生城市根据所选择的省份级联下拉选择 //在第一行第一个单元格,插入下拉框 HSSFRow row = userinfosheet1.createRow(naturalRowIndex-1); HSSFCell userNameLableCell = row.createCell(0); userNameLableCell.setCellValue("用户姓名:"); HSSFCell userNameCell = row.createCell(1); userNameCell.setCellValue(userName); HSSFCell provinceLableCell = row.createCell(2); provinceLableCell.setCellValue("出生省份:"); HSSFCell provinceCell = row.createCell(3); provinceCell.setCellValue("请选择"); HSSFCell cityLableCell = row.createCell(4); cityLableCell.setCellValue("出生城市:"); HSSFCell cityCell = row.createCell(5); cityCell.setCellValue("请选择"); //得到验证对象 DataValidation data_validation_list = TestExcelSelect.getDataValidationByFormula("provinceInfo",naturalRowIndex,4); //工作表添加验证数据 userinfosheet1.addValidationData(data_validation_list); DataValidation data_validation_list2 = TestExcelSelect.getDataValidationByFormula("INDIRECT($D"+naturalRowIndex+")",naturalRowIndex,6); //工作表添加验证数据 userinfosheet1.addValidationData(data_validation_list2); } /** * 创建一列数据 * @param currentRow * @param textList */ public static void creatRow(HSSFRow currentRow,String[] textList){ if(textList!=null&&textList.length>0){ int i = 0; for(String cellValue : textList){ HSSFCell userNameLableCell = currentRow.createCell(i++); userNameLableCell.setCellValue(cellValue); } } } /** * 对Excel自然行列设置一个数据验证(并出现下拉列表选择格式) * @param selectTextList * @param naturalRowIndex * @param naturalColumnIndex * @return */ public static DataValidation getDataValidationList(String[] selectTextList,int naturalRowIndex,int naturalColumnIndex){ //加载下拉列表内容 DVConstraint constraint = DVConstraint.createExplicitListConstraint(selectTextList); //设置数据有效性加载在哪个单元格上。 //四个参数分别是:起始行、终止行、起始列、终止列 int firstRow = naturalRowIndex-1; int lastRow = naturalRowIndex-1; int firstCol = naturalColumnIndex-1; int lastCol = naturalColumnIndex-1; CellRangeAddressList regions=new CellRangeAddressList(firstRow,lastRow,firstCol,lastCol); //数据有效性对象 DataValidation data_validation_list = new HSSFDataValidation(regions,constraint); return data_validation_list; } /** * 使用已定义的数据源方式设置一个数据验证 * @param formulaString * @param naturalRowIndex * @param naturalColumnIndex * @return */ public static DataValidation getDataValidationByFormula(String formulaString,int naturalRowIndex,int naturalColumnIndex){ //加载下拉列表内容 DVConstraint constraint = DVConstraint.createFormulaListConstraint(formulaString); //设置数据有效性加载在哪个单元格上。 //四个参数分别是:起始行、终止行、起始列、终止列 int firstRow = naturalRowIndex-1; int lastRow = naturalRowIndex-1; int firstCol = naturalColumnIndex-1; int lastCol = naturalColumnIndex-1; CellRangeAddressList regions=new CellRangeAddressList(firstRow,lastRow,firstCol,lastCol); //数据有效性对象 DataValidation data_validation_list = new HSSFDataValidation(regions,constraint); return data_validation_list; } }
评论
2 楼
穷途末路
2014-01-03
给力,谢谢分享
1 楼
fruitking
2010-11-16
使用的jar包有
dom4j-1.6.1.jar
poi-3.7-20101029.jar
poi-ooxml-3.7-20101029.jar
poi-ooxml-schemas-3.7-20101029.jar
poi-scratchpad-3.7-20101029.jar
xmlbeans-2.3.0.jar
dom4j-1.6.1.jar
poi-3.7-20101029.jar
poi-ooxml-3.7-20101029.jar
poi-ooxml-schemas-3.7-20101029.jar
poi-scratchpad-3.7-20101029.jar
xmlbeans-2.3.0.jar
发表评论
-
电话号码压缩方法
2013-03-09 23:31 1614/** * 电话号码采用62进制压缩方法工具 ... -
jquerytree树结构实例
2011-05-18 09:19 1644上传一个jquerytree的实例 下面做些讲解 jquery ... -
js对象的定义以及在弹出窗口中的返回值应用
2011-05-16 16:57 1911弹出窗口及返回值的js代码 function searc ... -
java枚举值的使用
2011-02-15 11:04 49571.java枚举值解决类型安全的问题,范围问题,能获取一组值的 ... -
存储设备的接口分类
2011-01-07 23:29 1480存储设备的接口有五大类 IDE、SCSI、USB,并行口,串口 ... -
VBA脚本语言测试Excel宏定义处理文件拷贝
2010-11-29 13:54 2965'指定文件目录复制工具(可用户基于svn版本管理的项目做增 ... -
深入探索 高效的Java异常处理框架
2010-11-11 09:07 1309突然想起应用中异常处理问题,以前很少应用这块知识,或者说应用得 ... -
oracle数据库备份恢复和svn备份恢复
2010-08-09 14:07 1393目录 2010-08-06系统重装 1 一、 检查当前操作系统 ... -
url中文乱码,分页中乱码,textarea回车符回写
2010-04-14 10:51 2880url传输乱码的解决方式 这里不针对在web服务器设置编码(考 ... -
myeclips下的jvm内存设计问题
2009-12-22 11:06 1076在myeclipse的window菜单-》preference ... -
struts2 井号,星号,百分号的含义和使用举例
2009-11-18 15:03 3184struts2 OGNL,struts2 表达 ... -
字符串连接,但需要去掉重复部分
2009-11-06 17:26 1351比如有两个字符串,上海虹桥、虹桥国际机场,连接起来为上海虹桥国 ... -
oracle存储过程学习过程
2009-09-30 16:58 2041一直没有使用过存储过程 今天特意学习一下oracle的存储过程 ... -
正则表达式实例
2009-09-23 15:32 1195var chineseNameReg = /^[\u4E00- ... -
文本框默认输入灰色显示,点击后用层显示提示信息
2009-09-21 17:16 3200<html> <head> <t ... -
socket模拟http中post或者get提交数据,并获得响应数据
2009-08-31 10:37 8198首先建立一个web工程 准备连个jsp文件试试正常的流程 ... -
基于ssl双向认证的详细例子
2009-08-27 17:27 2117产生服务端证书库 keytool -genkey -alias ... -
Web Services的基本原理
2009-08-05 16:34 1083摘要:本文介绍了Web Services的起源和基本原理,分析 ... -
摘抄:jvm的内存介绍和举例
2009-08-01 11:20 11994.2 容易被搞晕的--堆和栈 由于"堆" ... -
摘抄:ejb的概念和原理解说
2009-08-01 11:06 1339转自《java程序员 编程 ...
相关推荐
总之,通过结合Java Web技术和数据库,我们可以实现动态的二级级联下拉菜单,为用户提供直观且易于操作的界面。这个过程涉及到数据库设计、后端服务开发以及前端交互等多个环节,对提升开发者综合能力非常有帮助。
在本文中,我们将深入探讨如何使用AngularJS实现三级级联下拉选择框。AngularJS,一个由Google维护的JavaScript框架,被广泛用于构建单页应用(SPA),它提供了丰富的功能来处理复杂的前端交互,包括数据绑定、依赖...
在网页开发中,级联下拉列表是一种常见的交互设计,常用于实现省市区选择、类别筛选等场景。jQuery 是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理和Ajax交互,同时也提供了丰富的插件来扩展功能。在这个...
"Java中单表和多表级联的增删改查"这个主题涵盖了基础的数据库操作以及更复杂的关联查询技术。以下是对这些知识点的详细解释: 1. **单表的增删改查(CRUD)**: - **Create(创建)**: 在Java中,通常使用JDBC...
JavaScript 级联下拉列表是一种常见的前端交互设计,它允许用户在选择一个选项后,根据该选项的值动态更新第二个或更多的下拉列表。这种功能在数据层级关系明确、需要用户逐步选择的情况下非常有用,比如省份-城市-...
在网页开发中,级联下拉列表是一种常见的交互设计,它允许用户在选择一个选项后,根据该选项的值动态加载下一个下拉列表的内容。这种功能通常用于展示层级关系的数据,如国家-省份-城市这样的地理信息。在本示例中,...
在layui中,级联选择器是一种常用于数据层级关系展示和选择的组件,尤其适用于地区选择、部门结构等场景。本篇文章将深入探讨layui的多选级联选择器及其无限级联功能。 首先,我们要理解什么是级联选择器。级联选择...
在Web开发中,级联下拉列表是一种常见的交互方式,它允许用户在选择一个选项后,根据选择自动更新另一个下拉列表。在这个“ajax+struts2.0+jsp下拉列表级联”的示例中,我们将探讨如何利用这三个技术实现这种功能。 ...
这个"AJAX3级级联下拉例子"是一个典型的前端交互应用,常见于动态填写表单,如地区选择,省市区级联填充。在这个例子中,用户选择一个选项时,下一个下拉框会根据前一个选项的值动态加载相关的数据,从而提供更精确...
在本教程"ajax级联forJava"中,我们将探讨如何使用Ajax、JavaScript以及Java来实现级联下拉框的功能。 级联下拉框常用于需要展示关联数据的场景,如国家和城市的选择,当用户选择一个国家后,下拉框会动态更新并...
Ajax级联下拉是一种常见的前端交互技术,常用于构建动态的、交互性强的网页应用,如地址选择器或分类过滤等。在这个项目中,我们主要关注的是如何利用Ajax实现中国省份与城市之间的级联下拉效果,同时结合MySQL...
在.NET框架中,级联(Cascading)是一种常见的数据绑定技术,用于创建相互关联的控件,如树形控件和下拉列表。这种技术能够帮助用户在多个选择之间建立逻辑关系,使得一个控件的选择会影响另一个控件的显示内容。在...
总的来说,实现“Struts2+Hibernate写的下拉菜单级联两级分类”需要对这两个框架有深入的理解,同时也涉及到前端交互和数据库操作。这是一个典型的前后端协作的例子,展示了如何利用Java Web技术解决实际问题。在...
在IT界,尤其是在前端开发中,可编辑的级联下拉列表框是一种常见的交互元素,它结合了下拉选择和文本输入的优点,提供了一种既方便又高效的用户输入方式。这种设计模式通常用于数据筛选或者多层级关联选择的场景,如...
城市级联系统,或称地区级联选择,是一种常见的前端交互设计,它允许用户逐步选择他们的地理位置,例如国家、省份、城市,形成一个级联的下拉选择列表。这种设计提高了用户体验,减少了输入错误,并简化了数据处理。...
- **初始化组件**:通过JavaScript调用`$.fn.casecader`方法对选择器进行初始化,设置相关参数,如默认值、数据源等。 - **事件绑定**:根据需要,可以绑定自定义事件,处理用户的交互行为。 ### 3. 示例代码 ``...
在网页开发中,多级级联下拉列表是一种常见的交互设计,它允许用户在一系列相关的选项中进行选择,其中每个下拉列表的选择会影响下一个下拉列表的可用选项。这种功能通常用于表示层次结构的数据,例如国家-省份-城市...
在安卓开发中,级联下拉列表是一种常见的用户界面组件,用于提供多级选择功能,常见于地址选择、分类筛选等场景。这个"安卓--级联下拉列表实现DEMO"是一个实例,它展示了如何在Android应用中创建并使用这种交互效果...
2. **JavaScript逻辑处理**:JavaScript负责监听下拉列表的选择变化,并在变化时调用Ajax请求,获取新的选项数据。 ```javascript function selec(parm, parm2) { // 逻辑处理,发送Ajax请求,更新后续下拉列表...
本文档将详细解析如何通过JSP(JavaServer Pages)与JavaScript来构建一个简单的二级级联下拉菜单。这种菜单通常用于网站导航或表单选择中,能够根据用户在一级菜单中的选择自动更新二级菜单的内容。 #### 二、关键...