如何进行java Excel操作,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1. 写Excel
1.1 引入Excel 的相关文件
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CreationHelper;
1.2 相关实用方法:
public static void wirteExcel() throws Exception{
//创建一个工作簿 即excel文件,再在该文件中创建一个sheet
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet=wb.createSheet("第一个sheet");
//在sheet中创建一行
HSSFRow row=sheet.createRow(0);
//在该行写入各种类型的数据
row.createCell(0).setCellValue(true);
row.createCell(1).setCellValue("钟林森");
row.createCell(2).setCellValue(23);
//设置保留两位小数
HSSFCell cell=row.createCell(3);
cell.setCellValue(6000);
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));
cell.setCellStyle(cellStyle);
//在写入 日期格式的 数据需要进行特殊处理(这是一种 简单的处理方式)
CreationHelper createHelper=wb.getCreationHelper();
HSSFCellStyle style=wb.createCellStyle();
style.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-MM-dd"));
cell=row.createCell(4);
cell.setCellValue(new Date());
cell.setCellStyle(style);
//最后写回磁盘
FileOutputStream out=new FileOutputStream("E:\\excel写数据.xls");
wb.write(out);
out.close();
System.out.println("写完了!");
}
public static void writeExcelList(List<String> title,String sheetName,
String filepath,List<Map<String,Object>> list){
// 创建一个工作簿 即excel 文件,再在该文件中创建一个sheet
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet(sheetName);
// 表头生成
HSSFRow row_0 = sheet.createRow(0);
for(int j=0;j<title.size();j++){
row_0.createCell(j).setCellValue(title.get(j));
}
// 表中每行得数据
for(int i =0;i<list.size();i++){
HSSFRow row = sheet.createRow(i+1);
for(int j=0;j<title.size();j++){
Object obj = list.get(i).get(title.get(j));
row.createCell(j).setCellValue(obj.toString());
}
}
//最后写回磁盘
FileOutputStream out;
try {
out = new FileOutputStream("E:\\excel写数据.xls");
wb.write(out);
out.close();
System.out.println("写完了!");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
1.3 测试:
public static void main(String[] args) throws Exception{
List<String> title = new ArrayList<String>();
title.add("price");
title.add("num");
title.add("amount");
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
Map<String,Object> map = new HashMap<String,Object>();
map.put("price", "12");
map.put("num", "12");
map.put("amount", 120);
list.add(map);
Map<String,Object> map1 = new HashMap<String,Object>();
map1.put("price", "11");
map1.put("num", "11");
map1.put("amount", 110);
list.add(map1);
writeExcelList(title,"库存成本","E:\\excel写数据.xls",list);
// wirteExcel();
}
2.API 查看:
https://poi.apache.org/apidocs/3.17/
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/kuchawyz/blog/3080437