标签:setborder .com nts import setfont eve 信息 软件 play
很多时候,一个软件应用程序需要生成Microsoft Excel文件格式的报告。有时,一个应用程序甚至希望将Excel文件作为输入数据。
Java Aspose Cells
Java Aspose Cells 是一种纯粹的Java授权的Excel API,开发和供应商Aspose发布。这个API的最新版本是8.1.2,发布于2014年7月,是一个丰富而厚重的API(普通Java类和AWT类的组合)设计,可以读、写和操纵电子表格Excel的组件。此API常见用途如下:
Excel报表,建立动态Excel报表
高保真的Excel渲染和打印
从Excel电子表格中导入和导出数据
生成,编辑,转换和电子表格
JXL
JXL是一款专为Selenium第三方框架,支持基于Web浏览器(数据是Web浏览器自动更新)数据驱动的自动化。然而,它也被用来作为JExcel API的一个共同的支持库,因为它的基本功能是可创建,读取和写入电子表格。基本特征如下:
生成Excel文件
从工作簿和电子表格导入数据
获得行和列的总数
注意:JXL只支持xls档案格式,并且不能处理大数据量。
JExcel
JExcel是由Team Dev开发提供纯行货API。利用这一点程序员可以很容易地读取,写入,显示和修改Excel工作簿中的两种格式:.xls和.XLSX。这个API可以很容易地嵌入Java的Swing和AWT。这个API的最新版本是Jexcel-2.6.12,发布于2009年,主要特点如下。
自动化Excel应用程序,工作簿,工作表等
在Java Swing应用程序作为普通的Swing组件嵌入到工作簿
事件侦听器添加到工作簿和电子表格
添加事件处理程序来处理的工作簿和电子表格事件的行为
添加本地对等开发定制功能
Apache POI
Apache POI是Apache软件基金会提供的100%开源库。大多数中小规模的应用程序开发主要依赖于Apache POI(HSSF+ XSSF)。它支持Excel 库的所有基本功能; 然而,呈现和文本提取是它的主要特点。
现在常用的解析excel的API主要有jxl和poi,本文主要研究关于poi的相关知识。
HPBF (出版商格式) : 它被用来读取和写入MS-Publisher文件。
知识体系
3、设置列宽、行高
[
sheet.setColumnWidth((short)column,(short)width);
row.setHeight((short)height);
4、保存Excel文件
FileOutputStream fileOut = new FileOutputStream(path);
wb.write(fileOut);
5、常用单元格边框格式
HSSFCellStyle style = wb.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);//下边框
style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);//左边框
style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
6.设置不显示excel网格线
sheet.setDisplayGridlines(false);其中sheet是Sheet对象
7.设置excel单元格中的内容换行
cellStyle.setWrapText(true);其中cellStyle是WorkBook创建的CellStyle对象,然后将cellStyle设置到要换行的Cell对象,最后在要换行的对象(一般为字符串)加入"/r/n"。如
topTile.append("/r/n" +"cellContent");
8.单元格的合并
sheet.addMergedRegion(new CellRangeAddress(0, 4, 0, 2));本示例为合并4行2列
package com.company.test; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; 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.HSSFColor; import org.apache.poi.ss.util.CellRangeAddress; public class MergedCells { public static void main(String[] args) throws IOException { //创建工作簿 HSSFWorkbook wb = new HSSFWorkbook(); //创建工作表 HSSFSheet sheet = wb.createSheet("new sheet"); for(int i=0;i<3;i++){ //设置列宽 sheet.setColumnWidth(i, 3000); } //创建行 HSSFRow row = sheet.createRow(0); row.setHeightInPoints(30);//设置行高 //创建单元格 HSSFCell cell = row.createCell(0); cell.setCellValue("用户信息表"); //标题样式 // 创建单元格样式 HSSFCellStyle cellStyle = wb.createCellStyle(); // 设置单元格的背景颜色为淡蓝色 cellStyle.setFillForegroundColor(HSSFColor.PALE_BLUE.index); cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); // 设置单元格居中对齐 cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 设置单元格垂直居中对齐 cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 创建单元格内容显示不下时自动换行 cellStyle.setWrapText(true); // 设置单元格字体样式 HSSFFont font = wb.createFont(); // 设置字体加粗 font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setFontName("宋体"); font.setFontHeight((short) 200); cellStyle.setFont(font); // 设置单元格边框为细线条 cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); //设置单元格样式 cell.setCellStyle(cellStyle); //合并单元格 sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2)); HSSFRow row1 = sheet.createRow(1); //标题信息 String[] titles = {"ID","用户名","密码"}; for(int i=0;i<3;i++){ HSSFCell cell1 = row1.createCell(i); cell1.setCellValue(titles[i]); //设置单元格样式 cell1.setCellStyle(cellStyle); } //模拟数据,实际情况下String[]多为实体bean List<String[]> list = new ArrayList<String[]>(); list.add(new String[]{"1","zhangsan","111"}); list.add(new String[]{"2","lisi","222"}); list.add(new String[]{"3","wangwu","333"}); ///内容样式 // 创建单元格样式 HSSFCellStyle cellStyle2 = wb.createCellStyle(); // 设置单元格居中对齐 cellStyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 设置单元格垂直居中对齐 cellStyle2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 创建单元格内容显示不下时自动换行 cellStyle2.setWrapText(true); // 设置单元格字体样式 HSSFFont font2 = wb.createFont(); // 设置字体加粗 font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font2.setFontName("宋体"); font2.setFontHeight((short) 200); cellStyle2.setFont(font2); // 设置单元格边框为细线条 cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); //循环赋值 for(int i=0;i<list.size();i++){ HSSFRow row2 = sheet.createRow(i+2); for(int j=0;j<3;j++){ HSSFCell cell1 = row2.createCell(j); cell1.setCellValue(list.get(i)[j]); //设置单元格样式 cell1.setCellStyle(cellStyle2); } } File file = new File("D://a.xls"); if(!file.exists()){ file.createNewFile(); } FileOutputStream fileOut = new FileOutputStream(file); wb.write(fileOut); fileOut.close(); } }
本文简单介绍了poi的相关知识,并主要研究了使用poi导出excel的相关知识,关于使用poi读取excel以及使用poi操作其他office文件,比如doc的相关知识,留待以后研究。
标签:setborder .com nts import setfont eve 信息 软件 play
原文地址:http://blog.csdn.net/u011526599/article/details/52951508