生成excel文件
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文件的更多相关文章
- 如何生成excel文件作为图像识别结果
如何生成excel文件作为图像识别结果 在进行大规模图像处理的时候,如果能够以表格的形式生成结果文件,将非常的直观.这个时候,选择excel作为结果输出文件,将是合适的. 查询相关资料,有很多关于ex ...
- php生成excel文件的简单方法
生成excel文件,最简单的莫过于把数据库的数据导入到excel就行了. 生成excel 当然使用的是 phpExcel http://www.jbxue.com/tags/phpexcel.html ...
- XLSTransformer生成excel文件简单演示样例
项目结构图: 项目中所用到的jar,能够到http://www.findjar.com/index.x下载 ExcelUtil类源代码: package util; import java.io.IO ...
- XLSTransformer生成excel文件
jxls的使用方法: 1)声明一个XLSTransformer对象,生成方式就是使用new操作符 XLSTransformer transformer = new XL ...
- thinkphp整合系列之phpexcel生成生成excel文件
在后台管理中会经常需要将数据生成excel表格的: php生成excel有两种方案: 一种是通过phpexcel生成xls格式的表格文件: 另一种则直接通过逗号换行生成csv格式的表格文件: 这里先讲 ...
- 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件
今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...
- springMVC(4)---生成excel文件并导出
springMVC(4)---生成excel文件并导出 在开发过程中,需要将数据库中的数据以excel表格的方式导出. 首先说明.我这里用的是Apache的POI项目,它是目前比较成熟的HSSF接口, ...
- 2018年,请不要再使用OLE生成EXCEL文件
输出EXCEL文件是ABAP开发工作中的常见需求,为了学习相关技术,我翻译过一篇文章:使用OLE2对象创建EXCEL文件,并且一度乐在其中. 最近几个月,经过与若干EXCEL打印程序的艰苦斗争,以及对 ...
- POI生成EXCEL文件
POI生成EXCEL文件 一.背景 根据指定格式的JSON文件生成对应的excel文件,需求如下 支持多sheet 支持单元格合并 支持插入图片 支持单元格样式可定制 需要 标题(title),表头( ...
- python xlwt模块生成excel文件并写入数据 xlrd读取数据
python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...
随机推荐
- Linux用户基础
http://itercast.com/lecture/21 操作系统通过用户.组概念来管理使用计算机的人 用户代表一个使用计算机的使用者,操作系统通过用户概念限制一个使用者能够访问的资源 组用来组织 ...
- 直接使用ip访问google搜索
173.194.127.148 173.194.127.51 173.194.36.48 (亲测,个人在用,有的ip有时候应该不能访问); 173.194.72.101 173.194.72.103 ...
- 【实用技术】DreamWeaver常用快捷键
文件菜单 新建文档 Ctrl+N 打开一个HTML文件 Ctrl+O 或者将文件从[文件管理器]或[站点]窗口拖动到[文档]窗口中 在框架中打开 Ctrl+Shift+O 关闭 Ctrl+W 保存 C ...
- Hadoop集群启动之后,datanode节点未正常启动的问题
Hadoop集群启动之后,用JPS命令查看进程发现datanode节点上,只有TaskTracker进程.如下图所示 master的进程: 两个slave的节点进程 发现salve节点上竟然没有dat ...
- [Regex Expression] Tagline --- {0, } {1,10}
Using a character set repeated 1 or more times, make a pattern to search for strings that do not con ...
- 大到可以小说的Y组合子(三)
答:关于Fix的问题你fix了吗? 问:慢着,让我想想,上次留下个什么问题来着?是说我们有了一个求不动点的函数Fix,但Fix却是显式递归的,是吧? 答:有劳你还记的这个问题. 问:Fix的参与背离了 ...
- [Spring入门学习笔记][静态资源]
遗留问题 在上一节课的作业中,我们一定遇到了一点问题——虽然将页面内容正确的返回给了浏览器,但是浏览器显示的样式却是不正确的,这是因为在HTML的\标签中我们这样引入了CSS资源: <link ...
- WEB服务器2--IIS架构(转)
开始之前可以先读:http://www.cnblogs.com/tiantianle/p/5419445.html 原文:http://www.cnblogs.com/arbin98/archive/ ...
- EffectiveC#02--仅在对基类进行强制更新时才使用new修饰符
1.建议避免使用new修饰符来重新定义非虚函数. 非虚方法是静态绑定的,不管哪里的代码也不管在哪里引用, 它总是严格的调用类中所定义的函数.并不会在运行时在 派生类中查找不同的版本. 2.何时使用ne ...
- java中的io系统详解(转)
Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...