全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java实现合并单元格的同时并导出excel示例

介绍

POI提供API给Java程序对Microsoft Office格式档案读和写的功能。POI可以操作的文档格式有excel,word,powerpoint等,POI进行跨行需要用到对象HSSFSheet对象,现在就当我们程序已经定义了一个HSSFSheet对象sheet。

跨第1行第1个到第2个单元格的操作为

sheet.addMergedRegion(new Region(0,(short)0,0,(short)1)); 

跨第1行第1个到第2行第1个单元格的操作为

sheet.addMergedRegion(new Region(0,(short)0,1,(short)0)); 

重点注意事项:

     1.单元格CELL和ROW对象下标都是从0开始的。

     2.单元格合并时Region(1,2,3,4)第1个值的行号必须要比3位置的行号小,如果大于3就不能正常合并单元格

     3.合并单元格的时候要合并的单单元格必须先创建,这样方便后面再次获取这个单元格来填充数据,主要就是因为合并时不能由后向前进行合并引起的。

示例代码

import java.io.IOException; 
 
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.apache.poi.hssf.util.Region; 
 
 
public class ExcelTest {  
  
 /** 
  * @param args 
  */  
 public static void main(String[] args) throws IOException {  
  
  try {  
   HSSFWorkbook wb = new HSSFWorkbook();  
   HSSFSheet sheet = wb.createSheet("new sheet");  
   HSSFCellStyle style = wb.createCellStyle(); // 样式对象  
  
   style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直  
   style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平  
   HSSFRow row = sheet.createRow((short) 0);  
   HSSFRow row2 = sheet.createRow((short) 1);  
  
   sheet.addMergedRegion(new Region(0, (short) 0, 1, (short) 0));  
   HSSFCell ce = row.createCell((short) 0);  
   ce.setEncoding(HSSFCell.ENCODING_UTF_16);// 中文处理  
   ce.setCellValue("项目\\日期"); // 表格的第一行第一列显示的数据  
   ce.setCellStyle(style); // 样式,居中  
   int num = 0;  
   for (int i = 0; i < 9; i++) { // 循环9次,每一次都要跨单元格显示  
    // 计算从那个单元格跨到那一格  
    int celln = 0;  
    int celle = 0;  
    if (i == 0) {  
     celln = 0;  
     celle = 1;  
    } else {  
     celln = (i * 2);  
     celle = (i * 2 + 1);  
    }  
    // 单元格合并  
    // 四个参数分别是:起始行,起始列,结束行,结束列  
    sheet.addMergedRegion(new Region(0, (short) (celln + 1), 0,  
      (short) (celle + 1)));  
    HSSFCell cell = row.createCell((short) (celln + 1));  
    cell.setCellValue("merging" + i); // 跨单元格显示的数据  
    cell.setCellStyle(style); // 样式  
    // 不跨单元格显示的数据,如:分两行,上一行分别两格为一格,下一行就为两格,“数量”,“金额”  
    HSSFCell cell1 = row2.createCell((short) celle);  
    HSSFCell cell2 = row2.createCell((short) (celle + 1));  
    cell1.setEncoding(HSSFCell.ENCODING_UTF_16);  
    cell1.setCellValue("数量");  
    cell1.setCellStyle(style);  
    cell2.setEncoding(HSSFCell.ENCODING_UTF_16);  
    cell2.setCellValue("金额");  
    cell2.setCellStyle(style);  
    num++;  
   }  
  
   // 在后面加上合计百分比  
  
   // 合计 在最后加上,还要跨一个单元格  
   sheet.addMergedRegion(new Region(0, (short) (2 * num + 1), 0,  
     (short) (2 * num + 2)));  
   HSSFCell cell = row.createCell((short) (2 * num + 1));  
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
   cell.setCellValue("合计");  
   cell.setCellStyle(style);  
   HSSFCell cell1 = row2.createCell((short) (2 * num + 1));  
   HSSFCell cell2 = row2.createCell((short) (2 * num + 2));  
   cell1.setEncoding(HSSFCell.ENCODING_UTF_16);  
   cell1.setCellValue("数量");  
   cell1.setCellStyle(style);  
   cell2.setEncoding(HSSFCell.ENCODING_UTF_16);  
   cell2.setCellValue("金额");  
   cell2.setCellStyle(style);  
  
   // 百分比 同上  
   sheet.addMergedRegion(new Region(0, (short) (2 * num + 3), 0,  
     (short) (2 * num + 4)));  
   HSSFCell cellb = row.createCell((short) (2 * num + 3));  
   cellb.setEncoding(HSSFCell.ENCODING_UTF_16);  
    
   cellb.setCellValue("百分比");  
   cellb.setCellStyle(style);  
    
   HSSFCell cellb1 = row2.createCell((short) (2 * num + 3));  
   HSSFCell cellb2 = row2.createCell((short) (2 * num + 4));  
   cellb1.setEncoding(HSSFCell.ENCODING_UTF_16);  
   cellb1.setCellValue("数量");  
   cellb1.setCellStyle(style);  
   cellb2.setEncoding(HSSFCell.ENCODING_UTF_16);  
   cellb2.setCellValue("金额");  
   cellb2.setCellStyle(style);  
  
   /***这里是问题的关键,将这个工作簿写入到一个流中就可以输出相应的名字,这里需要写路径就ok了。 
   FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
   wb.write(fileOut);  
   fileOut.close(); 
    **/ 
    
    
   /**第二种是输出到也面中的excel名称 
    * pName="栏目统计表"; 
 response.reset(); 
 response.setContentType("application/x-msdownload"); 
 response.setHeader("Content-Disposition","attachment; filename="+new String(pName.getBytes("gb2312"),"ISO-8859-1")+".xls"); 
 ServletOutputStream outStream=null; 
 
 try{ 
  outStream = response.getOutputStream(); 
  wb.write(outStream); 
 }catch(Exception e) 
 { 
  e.printStackTrace(); 
 }finally{ 
  outStream.close(); 
 } 
    * */ 
   System.out.print("OK");  
  } catch (Exception ex) {  
   ex.printStackTrace();  
  }  
  
 }  
  
} 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# java导出合并单元格  # java  # excel合并单元格  # 合并单元格  # Java导出Excel统计报表合并单元格的方法详解  # java实现excel导出合并单元格的步骤详解  # Java实现导出合并Excel单元格  # JAVA中excel导出一对多合并具体实现  # 单元格  # 行号  # 到第  # 都要  # 是从  # 就不能  # 要比  # 这篇文章  # 在后面  # 谢谢大家  # 就当  # 中就  # 必须先  # 第二种  # 就为  # 两行  # 跨行  # 后向  # 文档格式  # 就是因为 


相关文章: 成都网站制作公司哪家好,四川省职工服务网是做什么用?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  制作旅游网站html,怎样注册旅游网站?  定制建站流程步骤详解:一站式方案设计与开发指南  如何通过WDCP绑定主域名及创建子域名站点?  宝塔面板如何快速创建新站点?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  如何做静态网页,sublimetext3.0制作静态网页?  测试制作网站有哪些,测试性取向的权威测试或者网站?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  如何快速上传建站程序避免常见错误?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  ,想在网上投简历,哪几个网站比较好?  如何选择域名并搭建高效网站?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Java解压缩zip - 解压缩多个文件或文件夹实例  建站之星在线客服如何快速接入解答?  如何打造高效商业网站?建站目的决定转化率  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  制作表格网站有哪些,线上表格怎么弄?  网站制作网站,深圳做网站哪家比较好?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  C#如何在一个XML文件中查找并替换文本内容  建站为何优先选择香港服务器?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  用v-html解决Vue.js渲染中html标签不被解析的问题  如何在万网ECS上快速搭建专属网站?  网站按钮制作软件,如何实现网页中按钮的自动点击?  XML的“混合内容”是什么 怎么用DTD或XSD定义  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  *服务器网站为何频现安全漏洞?  如何快速使用云服务器搭建个人网站?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何通过西部建站助手安装IIS服务器?  制作网站的公司有哪些,做一个公司网站要多少钱?  如何制作算命网站,怎么注册算命网站?  ,网页ppt怎么弄成自己的ppt?  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何快速搭建高效香港服务器网站?  网站制作公司排行榜,抖音怎样做个人官方网站  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  建站之星如何实现PC+手机+微信网站五合一建站?  建站之星代理平台如何选择最佳方案?  移民网站制作流程,怎么看加拿大移民官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。