import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFHeader;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.Header;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class POICreate {
public static void main(String[] args) {
/*// 创建一个Excel
Workbook wb = new HSSFWorkbook();
DataFormat format = wb.createDataFormat();
CellStyle style;
// 创建一个Sheet
Sheet sheet1 = wb.createSheet("产品清单");
String[] title = { "编号", "产品名称", "产品价格", "产品数量", "生产日期", "产地", "是否出口" };
int i = 0;
// 创建一个行
Row row = sheet1.createRow((short) 0);
// 填充标题
for (String s : title) {
Cell cell = row.createCell(i);
cell.setCellValue(s);
i++;
}
// 以下是填充数据
Row row1 = sheet1.createRow((short) 1);
row1.createCell(0).setCellValue(20071001);
row1.createCell(1).setCellValue("金鸽瓜子");
Cell cell2 = row1.createCell(2);
cell2.setCellValue(2.45);
style = wb.createCellStyle();
style.setDataFormat(format.getFormat("#.##"));
cell2.setCellStyle(style);
row1.createCell(3).setCellValue(200);
*
* 定义显示日期的公共格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String newDate = dateFormat.format(new Date());
row1.createCell(4).setCellValue(newDate);
row1.createCell(5).setCellValue("陕西西安");
row1.createCell(6).setCellValue(true);
* 合并单元格 通过Writablesheet.mergeCells(int x,int y,int m,intn)来实现 表示将first
* row,last row,first column,last column
Row row2 = sheet1.createRow((short) 2);
Cell cell3 = row2.createCell((short) 0);
cell3.setCellValue("合并了三个单元格");
sheet1.addMergedRegion(new CellRangeAddress(2, 2, 0, 2));
FileOutputStream fileOut = null;
try {
fileOut = new FileOutputStream("C:\\test1.xls");
wb.write(fileOut);
fileOut.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fileOut.close();
} catch (IOException e) {
e.printStackTrace();
}
}*/
writeExcelMatch0703("C://aa.xlsx");
writeExcelMatch0703("C://aaaa.xls");
}
/**
* 兼容2003和2007版本。
* 要想支持2003 和2007,我们就要用到面向借口编程的方法。一下操作就采用的接口编程。
* @param fileName
* 文件路径
*/
public static void writeExcelMatch0703(String fileName){
Workbook workBook = null;
if(fileName.endsWith(".xls")){
workBook = new HSSFWorkbook();
}else if(fileName.endsWith(".xlsx")){
workBook = new XSSFWorkbook();
}else{
throw new RuntimeException("文件格式不正确");
}
Sheet sheet = workBook.createSheet("测试");
// Header header = sheet.getHeader();
// header.setCenter("这是表头");
Row row = sheet.createRow(0);
row.setHeight((short)500);
Cell cell = row.createCell(0);
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
cell.setCellValue("兼容2003和2007Excel");
try {
OutputStream os = new FileOutputStream(fileName);
workBook.write(os);
os.flush();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFHeader;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.Header;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class POICreate {
public static void main(String[] args) {
/*// 创建一个Excel
Workbook wb = new HSSFWorkbook();
DataFormat format = wb.createDataFormat();
CellStyle style;
// 创建一个Sheet
Sheet sheet1 = wb.createSheet("产品清单");
String[] title = { "编号", "产品名称", "产品价格", "产品数量", "生产日期", "产地", "是否出口" };
int i = 0;
// 创建一个行
Row row = sheet1.createRow((short) 0);
// 填充标题
for (String s : title) {
Cell cell = row.createCell(i);
cell.setCellValue(s);
i++;
}
// 以下是填充数据
Row row1 = sheet1.createRow((short) 1);
row1.createCell(0).setCellValue(20071001);
row1.createCell(1).setCellValue("金鸽瓜子");
Cell cell2 = row1.createCell(2);
cell2.setCellValue(2.45);
style = wb.createCellStyle();
style.setDataFormat(format.getFormat("#.##"));
cell2.setCellStyle(style);
row1.createCell(3).setCellValue(200);
*
* 定义显示日期的公共格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String newDate = dateFormat.format(new Date());
row1.createCell(4).setCellValue(newDate);
row1.createCell(5).setCellValue("陕西西安");
row1.createCell(6).setCellValue(true);
* 合并单元格 通过Writablesheet.mergeCells(int x,int y,int m,intn)来实现 表示将first
* row,last row,first column,last column
Row row2 = sheet1.createRow((short) 2);
Cell cell3 = row2.createCell((short) 0);
cell3.setCellValue("合并了三个单元格");
sheet1.addMergedRegion(new CellRangeAddress(2, 2, 0, 2));
FileOutputStream fileOut = null;
try {
fileOut = new FileOutputStream("C:\\test1.xls");
wb.write(fileOut);
fileOut.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fileOut.close();
} catch (IOException e) {
e.printStackTrace();
}
}*/
writeExcelMatch0703("C://aa.xlsx");
writeExcelMatch0703("C://aaaa.xls");
}
/**
* 兼容2003和2007版本。
* 要想支持2003 和2007,我们就要用到面向借口编程的方法。一下操作就采用的接口编程。
* @param fileName
* 文件路径
*/
public static void writeExcelMatch0703(String fileName){
Workbook workBook = null;
if(fileName.endsWith(".xls")){
workBook = new HSSFWorkbook();
}else if(fileName.endsWith(".xlsx")){
workBook = new XSSFWorkbook();
}else{
throw new RuntimeException("文件格式不正确");
}
Sheet sheet = workBook.createSheet("测试");
// Header header = sheet.getHeader();
// header.setCenter("这是表头");
Row row = sheet.createRow(0);
row.setHeight((short)500);
Cell cell = row.createCell(0);
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
cell.setCellValue("兼容2003和2007Excel");
try {
OutputStream os = new FileOutputStream(fileName);
workBook.write(os);
os.flush();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}