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. openwrt下和云端通讯的例程,

    openwrt下和云端通讯的例程 ibcurl 官方文档请参考这里 http://curl.haxx.se/libcurl/c/curl_easy_setopt.html 刚接触 libcurl的时候 ...

  2. .net 分页案例效果

     ;             )             {                 pageUrl += ) +  && (totalPageCount > step  ...

  3. What’s the difference between an interface and an abstract class in Java?

    原文 What’s the difference between an interface and an abstract class in Java? It’s best to start answ ...

  4. 让 SpringMVC 接收多个对象的4种方法

    问题背景: 我要在一个表单里同时一次性提交多名乘客的个人信息到SpringMVC,前端HTML和SpringMVC Controller里该如何处理? 第1种方法:表单提交,以字段数组接收: 第2种方 ...

  5. Ajax 获取数据代码

    无刷新获取字符串: Html网页中: <script> //定义异步对象 var xmlHttp; //封装方法 function CreateXMLHTTP() { try { xmlH ...

  6. 基于google earth engine 云计算平台的全国水体变化研究

    第一个博客密码忘记了,今天才来开通第二个博客,时间已经过去两年了,三年的硕士生涯,真的是感慨良多,最有收获的一段时光,莫过于在实验室一个人敲着代码了,研三来得到中科院深圳先进院,在这里开始了新的研究生 ...

  7. Android应用程序注冊广播接收器(registerReceiver)的过程分析

    前面我们介绍了Android系统的广播机制,从本质来说,它是一种消息订阅/公布机制,因此,使用这样的消息驱动模型的第一步便是订阅消息:而对Android应用程序来说,订阅消息事实上就是注冊广播接收器, ...

  8. Docker快速搭建neural style环境

    ## 概览 相关的代码都在Github上,请参见我的Github,https://github.com/lijingpeng/neural-style 敬请多多关注哈~~~ ## Docker镜像构建 ...

  9. SQL内连接-外连接join,left join,right join,full join

    1.创建测试表test1及test2 SQL)); 表已创建. SQL)); 表已创建. ,'name1'); ,'name2'); ,'name3'); ,'name4'); ,'name5'); ...

  10. java序列化ClassNotFoundException

    简单的想从保存的对象中重新解析出对象,用了逆序列化,可是报错: java.lang.ClassNotFoundException: xxxxxxxxxxxx at java.net.URLClassL ...