社区
Java EE
帖子详情
jxls 合并单元格问题?
xiasys
2009-04-27 07:22:48
请高手指点一下
用jxls模板导出Excel
如何合并单元格?
最好能给个例子?
谢谢!
...全文
906
2
打赏
收藏
jxls 合并单元格问题?
请高手指点一下 用jxls模板导出Excel 如何合并单元格? 最好能给个例子? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
synkig
2012-02-23
打赏
举报
回复
都没看清楚问题
是jxls 不是jxl
PPS柴油
2009-04-29
打赏
举报
回复
package com.ctc.ema.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import com.ctc.ema.init.Init;
public class Excel extends DaoUtil {
/** log4J配置 */
private static Logger log = Logger.getLogger(Excel.class);
/** 数据源 */
private static DataSource ds = null;
/*
* 构造函数 初始化数据源
*/
public Excel() {
try {
ds = Init.getDataSource();
} catch (Exception ex) {
log.error("", ex);
}
}
// SQL语句带参数,返回结果对像
public ResultSet getResultSet(String SQLString, String[] SQLparameter)
throws Exception {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
conn = ds.getConnection();
ps = conn.prepareStatement(SQLString);
for (int i = 0; i < SQLparameter.length; i++) {
ps.setObject(i + 1, SQLparameter[i]);
}
rs = ps.executeQuery();
return rs;
}
// SQL语句不带参数,返回结果对像
public ResultSet getResultSet(String SQLString) throws Exception {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
conn = ds.getConnection();
ps = conn.prepareStatement(SQLString);
rs = ps.executeQuery();
return rs;
}
// 返回一个EXCEL的文档,此方法要传一个ResulSet,String[]参数,EXCEL的头标。
@SuppressWarnings("deprecation")
public HSSFWorkbook exprotExcel(String sql, String[] SQLparameter,
String[] headString) throws Exception {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet1");
// 以下以写表头
// 表头为第一行
HSSFRow row = null;
HSSFCell cell = null;
row = sheet.createRow((short) 0);
for (int i = 0; i < headString.length; i++) {
sheet.setColumnWidth((short) i, (short) 5000);
cell = row.createCell((short) i);
//cell.setEncoding((short) 1);
cell.setCellType(1);
cell.setCellValue(headString[i]);
}
ResultSet rs = null;
rs = getResultSet(sql, SQLparameter);
int i = 1;
int sheetNumber = 2;
try {
while (rs.next()) {
if(i > 60000) {
sheet = wb.createSheet("sheet" + sheetNumber);
sheetNumber++;
i = 1;
}
row = sheet.createRow(i);
for (int j = 0; j < headString.length; j++) {
cell = row.createCell((short) j);
//cell.setEncoding((short) 1);
cell.setCellType(1);
cell.setCellValue(rs.getObject(j + 1) + "");
}
i++;
}
} catch (SQLException e) {
e.printStackTrace();
}
return wb;
}
// 返回一个EXCEL的文档,此方法要传一个SQL语句,Excel的头标。
@SuppressWarnings("deprecation")
public HSSFWorkbook exprotExcel(String sql, String[] headString)
throws Exception {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet1");
sheet.setColumnWidth((short) 30, (short) 0);
// 以下以写表头
// 表头为第一行
HSSFRow row = null;
HSSFCell cell = null;
for (int i = 0; i < headString.length; i++) {
sheet.setColumnWidth((short) i, (short) 5000);
row = sheet.createRow((short) 0);
cell = row.createCell((short) i);
cell.setEncoding((short) 1);
cell.setCellType(1);
cell.setCellValue(headString[i]);
}
ResultSet rs = null;
rs = getResultSet(sql);
int i = 1;
try {
while (rs.next()) {
row = sheet.createRow(i);
for (int j = 0; j < headString.length; j++) {
cell = row.createCell((short) j);
cell.setEncoding((short) 1);
cell.setCellType(1);
cell.setCellValue(rs.getObject(j + 1) + "");
}
i++;
}
} catch (SQLException e) {
e.printStackTrace();
}
return wb;
}
// 返回一个EXCEL的文档,此方法要传一个ResulSet,EXCEL的头标。
@SuppressWarnings("deprecation")
public HSSFWorkbook exprotExcel(ResultSet rs, String[] headString)
throws Exception {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet1");
sheet.setColumnWidth((short) 30, (short) 0);
// 以下以写表头
// 表头为第一行
HSSFRow row = null;
HSSFCell cell = null;
for (int i = 0; i < headString.length; i++) {
sheet.setColumnWidth((short) i, (short) 5000);
row = sheet.createRow((short) 0);
cell = row.createCell((short) i);
cell.setEncoding((short) 1);
cell.setCellType(1);
cell.setCellValue(headString[i]);
}
int i = 1;
try {
while (rs.next()) {
row = sheet.createRow(i);
// sheet.setColumnWidth((short)20,(short)20);
for (int j = 0; j < headString.length; j++) {
// row.setHeight((short)10);
cell = row.createCell((short) j);
cell.setEncoding((short) 1);
cell.setCellType(1);
cell.setCellValue(rs.getObject(j + 1) + "");
}
i++;
}
} catch (SQLException e) {
e.printStackTrace();
}
return wb;
}
@SuppressWarnings("deprecation")
public String[] getStringArray(HSSFSheet sheet, int row) {
// 根据行数取得Sheet的一行
HSSFRow rowline = sheet.getRow(row);
// 获取当前行的列数
int filledColumns = rowline.getLastCellNum();
String[] str = new String[filledColumns];
HSSFCell cell = null;
// 循环遍历所有列
for (int i = 0; i < filledColumns; i++) {
// 取得当前Cell
cell = rowline.getCell((short) i);
String cellvalue = null;
if (cell != null) {
// 判断当前Cell的Type
switch (cell.getCellType()) {
// 如果当前Cell的Type为NUMERIC
case HSSFCell.CELL_TYPE_NUMERIC: {
// 判断当前的cell是否为Date
if (HSSFDateUtil.isCellDateFormatted(cell)) {
// 如果是Date类型则,取得该Cell的Date值
@SuppressWarnings("unused")
Date date = cell.getDateCellValue();
// 把Date转换成本地格式的字符串
cellvalue = cell.getDateCellValue().toLocaleString();
}
// 如果是纯数字
else {
// 取得当前Cell的数值
Integer num = new Integer((int) cell
.getNumericCellValue());
cellvalue = String.valueOf(num);
}
break;
}
// 如果当前Cell的Type为STRIN
case HSSFCell.CELL_TYPE_STRING:
// 取得当前的Cell字符串
cellvalue = cell.getStringCellValue().replaceAll("'", "''");
break;
// 默认的Cell值
default:
cellvalue = " ";
}
} else {
cellvalue = "";
}
// 在每个字段之间插入分割符
str[i] = cellvalue;
}
return str;
}
}
jxls
2.0支持
合并单元格
jxls
2.0支持
合并单元格
和
合并单元格
模板写入数据,jar包里已经包含了pom.xml,可以自行解压方便上传到maven私服,这种方式会带上依赖,否则要一个个手动添加依赖.pom在jar包里
jxls
-core\2.0\
jxls
-core-2.0\META-INF\maven\pom.xml,不过我也单独上传了一份,这个pom文件不需要下载,当然分多的豪如果不吝赞助,那就道一声多谢! 详细的文档地址是:https://blog.csdn.net/a1091662876/article/details/87722035
动态的
合并单元格
(超管用)
编程人员可以通过此方法动态的
合并单元格
,方便您在操作中动态的合并
Excel报表导出,复杂Excel模板导出(带单元格合并),
jxls
2
一个Maven项目,下载直接使用,直接找到
Jxls
Test运行demo即可,功能强大,基本能满足所有报表的导出需求,支持多个Sheet导出,支持复杂的导出组合,可以自己写模板试玩下。
jxls
2.6兼容2.X版本 demo集合 包含 循环 判断
合并单元格
等共33个单独的例子,可以单独执行
jxls
作为比较好的excel模版方案,比poi和easyExcel相对扩展性更高。 demo包含全部官方例子和模版, 2.6官方新增
合并单元格
标签,jx:mergecells 以及其他相关一切demo,很好的资源,分享给大家,供大家学习交流。 环境依赖 maven JDK1.8 不管使用eclipse 或者idea 直接导入即可,项目中使用请参照demo中pom文件版本,如需交流请关注博客
jxls
2.0支持
合并单元格
-pom文件
无须下载,jar包里已经包含了,自行解压即可.积分多的想省事的自便,谢谢赞助 :) 这里的这个只是jar包里的pom,只下载pom是不行的,jar包是修改过的 所以如果要用jar,要用下面的地址,如果遇到什么
问题
,可随时联系我 jar包文件在:https://download.csdn.net/download/a1091662876/10965456 教程在:https://blog.csdn.net/a1091662876/article/details/87722035
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章