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. Grok 正则捕获

    Grok 正则捕获: \s+(?<request_time>\d+(?:\.\d+)?)\s+ 回顾下: (?:pattern) 匹 配 pattern 但不获取匹配结果,也就是说这是一个 ...

  2. logstash 内置匹配IP

    10.252.142.174 - - [06/Sep/2016:08:41:36 +0800] "GET /api/validate/code/send?mobilePhone=186522 ...

  3. 2016"百度之星" - 资格赛(Astar Round1) 1001

    思路:第一个做法就是:每读入起始位置i和结束位置j,就从这位置i到位置j计算,可是TLE了,后面我想想要是我输入一个最长的字符串,且以最大次数计算开始位置1到结束位置100000,那么这计算量是很大的 ...

  4. RCU 机制 [转IBM]

    2005 年 7 月 01 日 本文详细地介绍了 Linux 2.6 内核中新的锁机制 RCU(Read-Copy Update) 的实现机制,使用要求与典型应用. 一.引言 众所周知,为了保护共享数 ...

  5. [置顶] LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句

    LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句 declare @sql varchar(4000), @dirpath varch ...

  6. 解决WCF 调用方未由服务器进行身份验证或消息包含无效或过期的安全上下文令牌

    错误描述: 1. WCF:调用方未由服务器进行身份验证 2. 无法处理消息.这很可能是因为操作“http://tempuri.org/ISCCLSvc/GetCarriersByWareHouse”不 ...

  7. Rss 的作用 及使用方法

    也可以参考http://jingyan.baidu.com/article/e73e26c0c73e1f24adb6a70f.html 什么是RSS RSS是站点用来和其他站点之间共享内容的一种简易方 ...

  8. Http请求和响应报文基础知识

    一 HTTP请求报文(http://en.wikipedia.org/wiki/List_of_HTTP_header_fields) 请求报文由三部分组成:请求行,请求头和请求体. 请求行:请求方法 ...

  9. UNION 和UNION ALL

    UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列 ...

  10. 基础命名空间:序列化 System.Runtime.Serialization

    对象通常都有状态(state),从一个对象中抽取这种状态,不论是将它存储于某地,还是通过网络传送,这种抽取动作称为“将一个对象序列化”,而反向处理过程,从一个被序列化的状态重建一个对象即为反序列化. ...