- 浏览: 92918 次
- 性别:
- 来自: 哈尔滨
文章分类
- 全部博客 (73)
- spring (8)
- js (9)
- oracle (4)
- mysql (3)
- css (1)
- jsp (1)
- struts (2)
- jquery (5)
- ajax (4)
- struts2 (1)
- servlet (1)
- ibatis (2)
- json (1)
- excle (5)
- java基础 (7)
- myeclipse (1)
- webservice (0)
- 自学线程 (0)
- 项目 (0)
- taglib (1)
- web.xml (1)
- jxl (1)
- drools (1)
- hibernate (4)
- pdf (1)
- spring security (1)
- 随感 (2)
- sql (1)
- 日期 (1)
最新评论
-
zi_wu_xian:
java 利用poi生成Excel文件还是太复杂了,用Page ...
java 利用poi生成Excel文件
http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.7-20101029.tar.gz
---------------------------------------------------------
package com.sztelecom.reportnet.action;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.hibernate.criterion.DetachedCriteria;
import org.springframework.dao.DataAccessException;
import cn.bstar.gale.boss.dao.OperatorDao;
import cn.bstar.gale.boss.framework.BusinessException;
import cn.bstar.gale.boss.framework.TransException;
import cn.bstar.gale.boss.model.Department;
import cn.bstar.gale.boss.model.Operator;
import cn.bstar.gale.boss.service.ExcelService;
import cn.bstar.gale.boss.util.Tools;
public class Test implements ExcelService {
private Logger logger = Logger.getLogger(Test.class);
private OperatorDao operatorDao;
public void exportAllOperator(OutputStream os) throws BusinessException {
DetachedCriteria dc = DetachedCriteria.forClass(Operator.class);
HSSFWorkbook wb = null;
List operatorList = new ArrayList();
try {
operatorList = operatorDao.findOperatorByDc(dc);
if (operatorList.size() < 1) {
return;
}
wb = generateExcel(operatorList);
if (wb != null) {
wb.write(os);
os.flush();
} else {
logger.error("======" + new Date()
+ ": [error] generator HSSFWorkbook failed");
throw new BusinessException("error.export.excel.fail");
}
} catch (IOException e) {
logger.error("======" + new Date() + ": [error] exportAllOperator "
+ e);
throw new BusinessException("error.export.excel.fail");
}
}
private HSSFWorkbook generateExcel(List operatorList) {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
wb.setSheetName(0, "人员记录", HSSFCell.ENCODING_UTF_16);
sheet.setColumnWidth((short) 0, (short) ((15 * 8) / ((double) 1 / 20)));
sheetIterator(11, sheet);
HSSFCell cell = null;
// 创建一个样式
HSSFCellStyle centerStyle = wb.createCellStyle();
// 居中对齐
centerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// sheet 创建一行
HSSFRow row = sheet.createRow((short) 0);
// 设定列名
row.createCell((short) 0).setCellValue("");
createCell(1, "操作员姓名", centerStyle, row, cell);
createCell(2, "操作员ID", centerStyle, row, cell);
createCell(3, "登录密码", centerStyle, row, cell);
createCell(4, "性别", centerStyle, row, cell);
createCell(5, "身份证号码", centerStyle, row, cell);
createCell(6, "专长", centerStyle, row, cell);
createCell(7, "可用状态", centerStyle, row, cell);
createCell(8, "电话", centerStyle, row, cell);
createCell(9, "E-mail", centerStyle, row, cell);
createCell(10, "学历", centerStyle, row, cell);
createCell(11, "部门编号", centerStyle, row, cell);
int s = 1;
for (int i = 0; i < operatorList.size(); i++) {
Operator operator = (Operator) operatorList.get(i);
row = sheet.createRow(s);
row.createCell((short) 0).setCellValue(s);
setCellValue(1, operator.getNickName(), row);
setCellValue(2, operator.getLogId(), row);
setCellValue(3, operator.getPassword(), row);
setCellValue(4, operator.getSex().toString(), row);
setCellValue(5, operator.getIdCard(), row);
setCellValue(6, operator.getSkill(), row);
setCellValue(7, operator.getStatus().toString(), row);
setCellValue(8, operator.getTelNo(), row);
setCellValue(9, operator.getEmail(), row);
setCellValue(10, operator.getGraduation(), row);
if (operator.getDepartment() != null) {
setCellValue(11, operator.getDepartment().getDeptId()
.toString(), row);
}
s++;
}
return wb;
}
public void setOperatorDao(OperatorDao operatorDao) {
this.operatorDao = operatorDao;
}
public void importAllOperator(InputStream is, Long createdBy)
throws TransException {
// 读取左上端单元
HSSFRow row = null;
HSSFCell cell = null;
Operator o = null;
Department department = null;
List oldLogIdList= null;
String newLogId=null;
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook;
try {
//得到已经存在的人员登录帐户列表
oldLogIdList=operatorDao.getAllOperatorLogIds();
workbook = new HSSFWorkbook(is);
} catch (Exception e) {
logger.error("======" + new Date() + ": [error] enportAllOperator "
+ e);
throw new TransException("error.data.access");
}
// 用getSheetAt(int index)按索引引用,
// 在Excel文档中,第一张工作表的缺省索引是0,
HSSFSheet sheet = workbook.getSheetAt(0);
List<Operator> operatorList = new ArrayList<Operator>();
Date date = new Date();
for (Iterator it = sheet.rowIterator(); it.hasNext();) {
row = (HSSFRow) it.next();
// 第一行不是数据
if (row == sheet.getRow(0)) {
continue;
}
//判断是否重复插入
cell = row.getCell((short) 2);
if (cellNotBlank(cell)){
newLogId=getStringCellValue(cell);
//如果数据库中已经存在,则不重复插入
if(oldLogIdList.contains(newLogId)){
continue;
}
}else{
//此字段不能为空
continue;
}
o = new Operator();
o.setLogId(getStringCellValue(cell));
cell = row.getCell((short) 1);
if (cellNotBlank(cell)) {
o.setNickName(getStringCellValue(cell));
}
cell = row.getCell((short) 3);
if (cellNotBlank(cell)) {
o.setPassword(getStringCellValue(cell));
}
cell = row.getCell((short) 4);
if (cellNotBlank(cell)) {
o.setSex(Long.valueOf(getStringCellValue(cell)));
}
cell = row.getCell((short) 5);
if (cellNotBlank(cell)) {
o.setIdCard(getStringCellValue(cell));
}
cell = row.getCell((short) 6);
if (cellNotBlank(cell)) {
o.setSkill(getStringCellValue(cell));
}
cell = row.getCell((short) 7);
if (cellNotBlank(cell)) {
o.setStatus(Long.valueOf(getStringCellValue(cell)));
}
cell = row.getCell((short) 8);
if (cellNotBlank(cell)) {
o.setTelNo(getStringCellValue(cell));
}
cell = row.getCell((short) 9);
if (cellNotBlank(cell)) {
o.setEmail(getStringCellValue(cell));
}
cell = row.getCell((short) 10);
if (cellNotBlank(cell)) {
o.setGraduation(getStringCellValue(cell));
}
cell = row.getCell((short) 11);
department = new Department();
if (cellNotBlank(cell)) {
department.setDeptId(Long.valueOf(getStringCellValue(cell)));
o.setDepartment(department);
}
// 创建时间
o.setDateCreated(date);
o.setCreatedBy(createdBy);
operatorList.add(o);
}
try {
for (int i = 0; i < operatorList.size(); i++) {
operatorDao.addOperator(operatorList.get(i));
}
} catch (Exception be) {
logger.error("======" + new Date() + ": [error] enportAllOperator "
+ be);
throw new TransException("error.data.access");
}
}
private void createCell(int index, String lable, HSSFCellStyle centerStyle,
HSSFRow row, HSSFCell cell) {
cell = row.createCell((short) index);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellStyle(centerStyle);
cell.setCellValue(lable);
}
private void sheetIterator(int time, HSSFSheet sheet) {
for (int i = 1; i < time; i++) {
sheet.setColumnWidth((short) i,
(short) ((40 * 8) / ((double) 1 / 20)));
}
}
private void setCellValue(int index, String value, HSSFRow row) {
HSSFCell cell = null;
cell = row.createCell((short) index);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(value);
}
private boolean cellNotBlank(HSSFCell cell) {
if (cell != null && !Tools.isBlank(getStringCellValue(cell))) {
return true;
}
return false;
}
private String getStringCellValue(HSSFCell cell){
String value=null;
switch(cell.getCellType())
{
case HSSFCell.CELL_TYPE_STRING:
value=cell.getStringCellValue().trim();break;
case HSSFCell.CELL_TYPE_NUMERIC:
String number=String.valueOf(cell.getNumericCellValue());
value=number.substring(0,number.indexOf("."));break;
case HSSFCell.CELL_TYPE_FORMULA:
value=String.valueOf(cell.getCellFormula()).trim();break;
case HSSFCell.CELL_TYPE_BOOLEAN:
value=String.valueOf(cell.getBooleanCellValue()).trim();break;
}
return value;
}
}
发表评论
-
Java中导出数据到Excel示例—poi
2011-08-10 11:31 1425package biz; import java.io.F ... -
java 利用poi生成Excel文件
2011-08-10 11:27 8097此文件已经通过测试 OK, 需要poi-3.7-20101 ... -
使用POI处理Excel文档
2011-08-10 11:25 1288使用POI处理Excel文档 JAVA DOC : ... -
HashMap,LinkedHashMap,TreeMap应用简介
2011-08-10 11:07 669转自:http://jimmy-duan.iteye.com/ ...
相关推荐
本教程介绍了 Rust 的基础语法、所有权模型、函数与模块设计,以及高级特性(如错误处理、闭包和并发编程)。通过提供实用的练习和答案,帮助您快速掌握 Rust 的核心概念,为系统级编程打下扎实基础。
基于springboot+Web的毕业设计选题系统源码数据库文档.zip
# 基于Spring和MyBatis的疫情防控管理系统 ## 项目简介 本项目是一个基于Spring和MyBatis框架的疫情防控管理系统,旨在实现数据在管理员、医务人员、患者和数据上报者之间的流转。系统涵盖了用户登录、注册、信息管理、预约管理、检测结果管理等功能,支持多角色的权限管理和数据操作。 ## 项目的主要特性和功能 1. 用户管理 用户登录、注册和登出功能。 用户个人信息管理,包括核酸检测记录和预约记录。 2. 管理员管理 管理员列表管理,支持增删改查操作。 医院信息管理,支持增删改查操作。 3. 医务人员管理 核酸预约和疫苗接种预约管理。 核酸检测结果和疫苗接种结果管理。 患者信息管理。 4. 数据上报者管理 风险区域数据上报。 患者信息上报。 5. 系统安全 通过拦截器实现用户登录状态检查,未登录用户将被重定向到登录页面。
对数据集进行二分类,有数据集和源码以及模型,二分类是识别猫和不是猫的情况,可做毕业设计。
最新完美版积分商城系统,网购商城系统源码,是更新的奇偶商城系统源码, 它拥有独立代理后台,而且内附搭建教程。 企业猫搭建了下,感觉这个源码很新颖的,购买商品后可以选择直接发货还是拆红包升级购买的商品升级成别的商品。
编译好的Linux版网络调试助手,方便直接使用,免得每次都需要重新编译
office使用软件
# 基于Python和Flask的博客管理系统 ## 项目简介 本项目是一个基于Python和Flask框架的博客管理系统,旨在为用户提供一个简单易用的博客平台。用户可以注册、登录、发布博客、管理博客内容以及评论等功能。 ## 项目的主要特性和功能 1. 用户管理 用户注册和登录功能。 用户个人信息管理。 2. 博客管理 发布、编辑和删除博客文章。 博客分类和标签管理。 3. 评论系统 用户可以对博客文章进行评论。 评论的查看和管理。 4. 权限管理 管理员可以管理用户和博客内容。 普通用户只能管理自己的博客和评论。 ## 安装使用步骤 1. 环境准备 确保已安装Python 3.x。 安装Flask框架pip install Flask。 2. 数据库配置 在config.py文件中配置数据库连接信息。
基于springboot+vue的实践性教学系统源码数据库文档.zip
基于springboot二手物品交易系统源码数据库文档.zip
基于springboot餐品美食论坛源码数据库文档.zip
人工智能开发项目深度学习项目源码带指导视频词云提取方式是百度网盘分享地址
基于springboot企业员工薪酬管理系统源码数据库文档.zip
基于springboot+JavaWeb图书管理系统源码数据库文档.zip
数据库设计管理课程设计系统设计报告(powerdesign+sql+DreamweaverCS)销售管理系统设计与开发提取方式是百度网盘分享地址
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
基于springboot的小说阅读平台源码数据库文档.zip
# 基于PaddleDetection框架的人流量统计系统 ## 项目简介 本项目是一个基于PaddleDetection框架的人流量统计系统,专注于静态和动态场景下的人员计数和行人检测。项目涵盖了从数据准备、模型选择、训练、评估、优化到预测和部署的完整流程,旨在提供高效、准确的人流量统计解决方案。 ## 主要特性和功能 多模型支持支持多种模型选择,如DeepSORT、JDE和FairMOT,适用于多目标追踪场景。 模型优化提供多种优化策略,包括数据增强、可变形卷积、syncbn+ema、attention和GIoU Loss,以提升模型精度。 性能加速支持TensorRT推理加速,显著提升模型性能。 数据增强提供多种数据增强方式,如cutmix、syncbn和ema,进一步优化模型性能。 模型导出支持模型导出,便于模型部署和上线。 ## 安装使用步骤 1. 安装PaddleDetection框架 bash
基于springboot的银行信用卡额度管理系统源码数据库文档.zip
# 基于Arduino的蒸发冷却系统 ## 项目简介 本项目旨在创建一个蒸发冷却系统(即沼泽冷却器),这是一种在干燥炎热气候下提供能源效率替代空调的系统。该系统使用Arduino 2560和各种传感器来监控和控制冷却过程。 ## 项目的主要特性和功能 水位监控通过水位传感器监控水箱中的水位,并在水位过低时发出警报。 温度和湿度显示在LCD屏幕上显示空气温度和湿度。 风扇控制根据温度范围控制风扇电机。 系统开关通过用户按钮控制系统的开关。 日志记录记录电机激活和停用的时间和日期。 ## 安装使用步骤 2. 硬件连接按照项目文档中的电路图连接所有硬件组件,包括水位传感器、LCD显示屏、实时时钟模块、DHT11传感器和风扇电机。 3. 上传代码将下载的代码上传到Arduino 2560开发板。 4. 启动系统通过用户按钮启动系统,观察LCD屏幕上的温度和湿度显示,并监控水位传感器的状态。