可以从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