java操作Excel最常用的开源组件有poi与jxl。jxl是韩国人开发的,发行较早,但是更新的很慢,目前似乎还不支持excel2007。poi是apache下的一个子项目,poi应该是处理ms的office系列文档最好的组件了。

poi的jar包下载地址:

http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.10-FINAL-20140208.zip

  1 /**
  2      * @ excel
  3      */
  4     public static void excelDemo() {
  5         // 创建一个工作薄,返回这个工作薄的引用
  6         HSSFWorkbook workbook = new HSSFWorkbook();
  7         // 新建一个工作表,返回这个表的引用
  8         HSSFSheet sheet = workbook.createSheet("sheetOne");
  9         // 创建一行,作为head。下标从0开始,返回行的引用
 10         HSSFRow row = sheet.createRow(0);
 11         // 创建单元格样式对象
 12         HSSFCellStyle headStyle = workbook.createCellStyle();
 13         // 水平方向居中
 14         headStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
 15         // 垂直方向居中
 16         headStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
 17         // 创建字体属性
 18         HSSFFont font1 = workbook.createFont();
 19         // 字体颜色
 20         font1.setColor(HSSFFont.COLOR_RED);
 21         // 粗体
 22         font1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
 23         // 字体大小
 24         font1.setFontHeightInPoints((short) 14);
 25         // 将字体对象放到样式对象中
 26         headStyle.setFont(font1);
 27         // 单元格对象
 28         HSSFCell  cell;
 29         // 在该行创建6个单元格
 30         for (int i = 0; i < 5; i++) {
 31             cell = row.createCell(i);
 32             // 设定单元格为字符类型
 33             cell.setCellType(HSSFCell.CELL_TYPE_STRING);
 34             // 设定单元格样式 
 35             cell.setCellStyle(headStyle);
 36             // 设定单元格内容
 37             cell.setCellValue("<head>"+i);
 38         }
 39         
 40         // body的样式
 41         HSSFCellStyle bodyStyle = workbook.createCellStyle();
 42         // 横向中间对齐
 43         bodyStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
 44         // 纵向中间对齐
 45         bodyStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
 46         // body的字体属性设定
 47         HSSFFont font2 = workbook.createFont();
 48         // 加粗
 49         font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
 50         // 字体颜色
 51         font2.setColor(IndexedColors.BLUE.getIndex());
 52         bodyStyle.setFont(font2);
 53         
 54         // 创建3行,作为body
 55         for (int i = 1; i < 4; i++) {
 56             row = sheet.createRow(i);
 57             for (int j = 0; j < 6; j++) {
 58                 cell = row.createCell(j);
 59                 cell.setCellStyle(bodyStyle);
 60                 cell.setCellType(HSSFCell.CELL_TYPE_STRING);
 61                 cell.setCellValue("<body>");
 62             }
 63         }
 64         
 65         // 合并单元格
 66         // 首先把单元格创建出来
 67         for (int i = 4; i < 7; i++) {
 68             row = sheet.createRow(i);
 69             for (int j = 0; j < 6; j++) {
 70                 cell = row.createCell(j);
 71                 // 设定单元格为字符类型
 72                 cell.setCellType(HSSFCell.CELL_TYPE_STRING);
 73             }
 74         }
 75         
 76         // 合并第5行的0到6列
 77         sheet.addMergedRegion(new CellRangeAddress(4, 4, 0, 5));
 78         // 合并第6行到第7行的1到3列
 79         sheet.addMergedRegion(new CellRangeAddress(5, 6, 0, 2));
 80         // 合并第6行到第7行的3到6列
 81         sheet.addMergedRegion(new CellRangeAddress(5, 6, 3, 5));
 82         
 83         // 获取第6行第1列的单元格
 84         row = sheet.getRow(5);
 85         cell = row.getCell(0);
 86         // 字体属性的设定
 87         HSSFFont hebingFont = workbook.createFont();
 88         // 字体颜色
 89         hebingFont.setColor(IndexedColors.BRIGHT_GREEN.getIndex());
 90         // 单元格样式设定
 91         HSSFCellStyle hebingStyle1 = workbook.createCellStyle();
 92         // 横向中间对齐
 93         hebingStyle1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
 94         // 纵向中间对齐
 95         hebingStyle1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
 96         // 设定前景色
 97         hebingStyle1.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
 98         hebingStyle1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
 99         // 设定字体
100         hebingStyle1.setFont(hebingFont);
101         // 设定单元格样式
102         cell.setCellStyle(hebingStyle1);
103         // 设定单元格内容
104         cell.setCellValue("合并单元格");
105         
106         cell = row.getCell(3);
107         HSSFCellStyle hebingStyle2 = workbook.createCellStyle();
108         hebingStyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
109         hebingStyle2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
110         hebingStyle2.setFillForegroundColor(IndexedColors.ORANGE.getIndex());
111         hebingStyle2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
112         hebingStyle2.setFont(hebingFont);
113         cell.setCellStyle(hebingStyle2);
114         hebingStyle2.setBorderLeft((short)2);
115         cell.setCellStyle(hebingStyle2);
116         cell.setCellValue("合并单元格2");
117         
118         row = sheet.getRow(6);
119         cell = row.getCell(3);
120         cell.setCellStyle(hebingStyle2);
121         
122         // 设定内容输出
123         try {
124             FileOutputStream out = new FileOutputStream(new File("d:\\workbook.xls"));
125             workbook.write(out);
126             out.flush();
127             out.close();
128 
129         } catch (IOException e) {
130             e.printStackTrace();
131         }
132         
133 
134     }

生成excel文件的更多相关文章

  1. 如何生成excel文件作为图像识别结果

    如何生成excel文件作为图像识别结果 在进行大规模图像处理的时候,如果能够以表格的形式生成结果文件,将非常的直观.这个时候,选择excel作为结果输出文件,将是合适的. 查询相关资料,有很多关于ex ...

  2. php生成excel文件的简单方法

    生成excel文件,最简单的莫过于把数据库的数据导入到excel就行了. 生成excel 当然使用的是 phpExcel http://www.jbxue.com/tags/phpexcel.html ...

  3. XLSTransformer生成excel文件简单演示样例

    项目结构图: 项目中所用到的jar,能够到http://www.findjar.com/index.x下载 ExcelUtil类源代码: package util; import java.io.IO ...

  4. XLSTransformer生成excel文件

    jxls的使用方法: 1)声明一个XLSTransformer对象,生成方式就是使用new操作符                 XLSTransformer transformer = new XL ...

  5. thinkphp整合系列之phpexcel生成生成excel文件

    在后台管理中会经常需要将数据生成excel表格的: php生成excel有两种方案: 一种是通过phpexcel生成xls格式的表格文件: 另一种则直接通过逗号换行生成csv格式的表格文件: 这里先讲 ...

  6. 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件

    今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...

  7. springMVC(4)---生成excel文件并导出

    springMVC(4)---生成excel文件并导出 在开发过程中,需要将数据库中的数据以excel表格的方式导出. 首先说明.我这里用的是Apache的POI项目,它是目前比较成熟的HSSF接口, ...

  8. 2018年,请不要再使用OLE生成EXCEL文件

    输出EXCEL文件是ABAP开发工作中的常见需求,为了学习相关技术,我翻译过一篇文章:使用OLE2对象创建EXCEL文件,并且一度乐在其中. 最近几个月,经过与若干EXCEL打印程序的艰苦斗争,以及对 ...

  9. POI生成EXCEL文件

    POI生成EXCEL文件 一.背景 根据指定格式的JSON文件生成对应的excel文件,需求如下 支持多sheet 支持单元格合并 支持插入图片 支持单元格样式可定制 需要 标题(title),表头( ...

  10. python xlwt模块生成excel文件并写入数据 xlrd读取数据

    python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...

随机推荐

  1. Python Cookie HTTP获取cookie并处理

    Cookie模块同样是Python标准库中的一员,它定义了一些类来解析和创建HTTP 的 cookie头部信息. 一.创建和设置Cookie >>> import Cookie #导 ...

  2. ora-28056 (Writing audit records to Windows Event Log failed)

    系统:windows xp oracle 版本 SQL> select * from v$version; BANNER ------------------------------------ ...

  3. 程序员求职之道(《程序员面试笔试宝典》)之求职有用网站及QQ群一览表

    技术学习网站 www.csdn.com www.iteye.com www.51cto.com http://www.cnblogs.com/ http://oj.leetcode.com/ http ...

  4. Qt之模型/视图(委托)

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.Qt import * from PyQt4. ...

  5. COCOS2D-X 不反复随机数

    srand(time(NULL)); int a[5]; for(int i=0;i<5;i++) { a[i]=CCRANDOM_0_1()*5; } srand放在循环外面

  6. sqlserver中几种典型的等待

    为了准备今年的双11很久没有更新blog,在最近的几次sqlserver问题的排查中,总结了sqlserver几种典型的等待类型,类似于oracle中的等待事件,如果看到这样的等待类型时候能够迅速定位 ...

  7. ionic 图片轮播问题

    1.使用ion-slide可以实现图片轮播,但是如果在html中仅仅增加ion-slide是远远不够的,会出现两个问题: (注:使用的是angularjs.首先需要在,js文件中注入:$ionicSl ...

  8. C# 实现预览dwg文件完整源代码(无需autocad环境)

    using System; using System.Drawing; using System.Collections; using System.ComponentModel; using Sys ...

  9. oracle导出数据显示出现ora-00109或者LRM-00109出错修改办法

    出现这种问题是因为日期格式的问题,调整日期格式后就可以了 改成yyyy-mm-dd的格式就好了

  10. TaobaoProtect.exe,Alipaybsm.exe进程删除----让流氓软件滚粗

    可能经常上网的朋友都会有这样的经历,只要你上过一次淘宝,那么阿里会给你的电脑自动下载一个TaobaoProtect.exe的程序,这是支付宝安全控件,名为安全控件,实际上它会在后台搜集用户数据和信息, ...