您的位置:首页 > 编程语言 > Java开发

java操作poi导出Excel

2013-05-21 11:29 183 查看
public void deleteFile(String filepath) throws IOException {

File f = new File(filepath);//定义文件路径

if (f.exists() && f.isDirectory()) {//判断是文件还是目录

if (f.listFiles().length == 0) {//若目录下没有文件则直接删除

f.delete();

} else {//若有则把文件放进数组,并判断是否有下级目录

File delFile[] = f.listFiles();

int i = f.listFiles().length;

for (int j = 0; j < i; j++) {

if (delFile[j].isDirectory()) {

deleteFile(delFile[j].getAbsolutePath());//递归调用del方法并取得子目录路径

}

delFile[j].delete();//删除文件

}

}

deleteFile(filepath);//递归调用

} else {

f.delete();

}

//1:java导出Excel {

HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls

XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx

对于不同版本的EXCEL文档要使用不同的工具类,如果使用错了,会提示如下错误信息。

org.apache.poi.openxml4j.exceptions.InvalidOperationException

org.apache.poi.poifs.filesystem.OfficeXmlFileException

}

WritableWorkbook workbook = null; //创建一个Excel文件

WritableSheet sheet = null; //excel中的sheet

ByteArrayOutputStream baos = new ByteArrayOutputStream(); //缓存文件的存放

String realPath = filepath + fileName;

try {

workbook = Workbook.createWorkbook(new File(realPath));

} catch (IOException e1) {

e1.printStackTrace();

}



try {

sheet = workbook.createSheet("sheet1", 0); // 创建第一个sheet

for (int i = 0; i < columnHeaders.size(); i++) {// 表头

sheet.addCell(new Label(i, 0, columnHeaders.get(i)));

}

for (int i = 0; i < rows.size(); i++) {

List<String> row = rows.get(i); // sheet列

for (int j = 0; j < row.size(); j++) {

sheet.addCell(new Label(j, i + 1, row.get(j))); // sheet行

}

}

workbook.write(); // 写入信息

workbook.close(); // 关闭excel表

} catch (Exception e) {

try {

workbook.close();

} catch (WriteException e1) {

e1.printStackTrace();

} catch (IOException e1) {

e1.printStackTrace();

}

}

return realPath;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: