应用POI组件读写Excel文档

可以从http://poi.apache.org/这里下载到POI的jar包

或者从这里下载:http://download.csdn.net/source/2984357

 

 

package com.jwy.excel;

 

import java.io.FileOutputStream;

 

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFRichTextString;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

 

 

public class firstExcel {

public static void main(String[] args) throws Exception {

HSSFWorkbook workBook = new HSSFWorkbook();//创建 一个excel文档对象

HSSFSheet sheet = workBook.createSheet();//创建一个工作薄对象

HSSFRow row = sheet.createRow(0);//创建一个行对象

HSSFCell cell = row.createCell(0);//在本行的第一个单元格中写入数据

//声明文本内容

HSSFRichTextString text =  new HSSFRichTextString("这是我的第一个Excel文档!");

cell.setCellValue(text);//将文本对象加入单元格

//文件输出流

FileOutputStream os = new FileOutputStream("firstExcel.xls");

workBook.write(os);//将文档对象写入文件输出流

os.close();//关闭文件输出流

}

}

 

 

设置字体样式

 

 

package com.jwy.excel;

 

import java.io.FileOutputStream;

import java.util.Date;

 

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;

import org.apache.poi.hssf.usermodel.HSSFDataFormat;

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;

 

/**

 * 设置样式

 * @author Jingweiyu 

 */

public class styleExcel {

public static void main(String[] args) throws Exception {

HSSFWorkbook workBook = new HSSFWorkbook();//创建 一个excel文档对象

HSSFSheet sheet = workBook.createSheet();//创建一个工作薄对象

sheet.setColumnWidth(1, 10000);//设置第二列的宽度为

HSSFRow row = sheet.createRow(1);//创建一个行对象

row.setHeightInPoints(23);//设置行高23像素

HSSFCellStyle style = workBook.createCellStyle();//创建样式对象

//设置字体

HSSFFont font = workBook.createFont();//创建字体对象

font.setFontHeightInPoints((short)15);//设置字体大小

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//设置粗体

font.setFontName("黑体");//设置为黑体字

style.setFont(font);//将字体加入到样式对象

//设置对齐方式

style.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);//水平居中

style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中

//设置边框

style.setBorderTop(HSSFCellStyle.BORDER_THICK);//顶部边框粗线

style.setTopBorderColor(HSSFColor.RED.index);//设置为红色

style.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE);//底部边框双线

style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);//左边边框

style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);//右边边框

//格式化日期

style.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));

HSSFCell cell = row.createCell(1);//创建单元格

cell.setCellValue(new Date());//写入当前日期

cell.setCellStyle(style);//应用样式对象

//文件输出流

FileOutputStream os = new FileOutputStream("styleExcel.xls");

workBook.write(os);//将文档对象写入文件输出流

os.close();//关闭文件输出流

}

}



 

 

合并单元格

 

package com.jwy.excel;

 

import java.io.FileOutputStream;

 

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.HSSFRichTextString;

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.CellRangeAddress;

 

/**

 * 合并单元格

 * 

 * @author Jingweiyu

 */

public class unionExcel {

public static void main(String[] args) throws Exception {

HSSFWorkbook workBook = new HSSFWorkbook(); // 创建 一个excel文档对象

HSSFSheet sheet = workBook.createSheet(); // 创建一个工作薄对象

 

// 设置样式

HSSFCellStyle titleStyle = workBook.createCellStyle();// 创建样式对象

titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);// 水平居中

titleStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直居中

// 设置字体

HSSFFont titleFont = workBook.createFont(); // 创建字体对象

titleFont.setFontHeightInPoints((short) 15); // 设置字体大小

titleFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 设置粗体

titleFont.setFontName("黑体"); // 设置为黑体字

titleStyle.setFont(titleFont);

 

// 合并单元格操作

sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 7));

sheet.addMergedRegion(new CellRangeAddress(2, 2, 5, 7));

sheet.addMergedRegion(new CellRangeAddress(3, 3, 1, 3));

 

HSSFRow row = null;

HSSFCell cell = null;

 

row = sheet.createRow(0);

cell = row.createCell(0);

cell.setCellStyle(titleStyle);

cell.setCellValue(new HSSFRichTextString("明日公司员工详细信息"));

 

// 设置表文样式

HSSFCellStyle tableStyle = workBook.createCellStyle();

 

// 设置表文字体

HSSFFont tableFont = workBook.createFont();

 

tableFont.setFontHeightInPoints((short) 12); // 设置字体大小

tableFont.setFontName("宋体"); // 设置为黑体字

tableStyle.setFont(tableFont);

 

String[] row1 = { "姓名:", "李**", "性别:", "女", "出生日期:", "1985年5月27" };

String[] row2 = { "家庭住址:", "吉林省长春市朝阳区*****", "", "", "邮编:", "130021",

"家庭电话:", "8562****" };

row = sheet.createRow(2);

for (int i = 0; i < row1.length; i++) {

cell = row.createCell(i);

cell.setCellStyle(tableStyle);

cell.setCellValue(new HSSFRichTextString(row1[i]));

}

row = sheet.createRow(3);

for (int i = 0; i < row2.length; i++) {

cell = row.createCell(i);

cell.setCellStyle(tableStyle);

cell.setCellValue(new HSSFRichTextString(row2[i]));

}

 

// 文件输出流

FileOutputStream os = new FileOutputStream("unionExcel.xls");

workBook.write(os); // 将文档对象写入文件输出流

os.close(); // 关闭文件输出流

}

}


 

 

 

读取Excel文档内容

 

package com.jwy.excel;

 

import java.io.FileInputStream;

 

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.poifs.filesystem.POIFSFileSystem;

 

/**

 * 读取Excel文档内容

 * @author Jingweiyu 

 */

public class ReadExcel {

public static void main(String[] args) throws Exception {

//创建文件输入流对象

FileInputStream is = new FileInputStream("readExcel.xls");

//创建 POI文件系统对象

POIFSFileSystem ts = new POIFSFileSystem(is);

//获取文档对象

HSSFWorkbook wb = new HSSFWorkbook(ts);

//获取工作薄

HSSFSheet sheet = wb.getSheetAt(0);

//声明行对象

HSSFRow row = null;

//通过循环获取每一行

for (int i = 0; sheet.getRow(i)!=null; i++) {

row = sheet.getRow(i);

//循环获取一行的中列

for (int j = 0; row.getCell(j)!=null; j++) {

System.out.print(row.getCell(j).toString()+" ");

}

System.out.println();

}

}

}


原文:http://hi.baidu.com/gaozerd/item/e23193a62e5f85d85bf19140

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值