poi进行读取
读xls和xlsx
public String readXls(String path) {
String text = "";
try {
FileInputStream is = new FileInputStream(path);
HSSFWorkbook excel = new HSSFWorkbook(is);
//获取第一个sheet
HSSFSheet sheet0 = excel.getSheetAt(0);
for (Iterator rowIterator = sheet0.iterator(); rowIterator.hasNext(); ) {
HSSFRow row = (HSSFRow) rowIterator.next();
for (Iterator iterator = row.cellIterator(); iterator.hasNext(); ) {
HSSFCell cell = (HSSFCell) iterator.next();
//根据单元的的类型 读取相应的结果
if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) text += cell.getStringCellValue() + "\t";
else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
text += cell.getNumericCellValue() + "\t";
else if (cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA) text += cell.getCellFormula() + "\t";
}
text += "\n";
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// log.warn(e);
}
return text;
}
public static String readXlsx(String path) {
String text = "";
try {
OPCPackage pkg = OPCPackage.open(path);
XSSFWorkbook excel = new XSSFWorkbook(pkg);
//获取第一个sheet
XSSFSheet sheet0 = excel.getSheetAt(0);
for (Iterator rowIterator = sheet0.iterator(); rowIterator.hasNext(); ) {
XSSFRow row = (XSSFRow) rowIterator.next();
for (Iterator iterator = row.cellIterator(); iterator.hasNext(); ) {
XSSFCell cell = (XSSFCell) iterator.next();
//根据单元的的类型 读取相应的结果
if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING) text += cell.getStringCellValue() + "\t";
else if (cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC)
text += cell.getNumericCellValue() + "\t";
else if (cell.getCellType() == XSSFCell.CELL_TYPE_FORMULA) text += cell.getCellFormula() + "\t";
}
text += "\n";
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// log.warn(e);
}
return text;
}
poi进行操作Excel数据
public static void main(String[] args) throws IOException {
//==========================================创建Excel文件=====================================================
//==========================================创建Excel文件=====================================================
//==========================================创建Excel文件=====================================================
String filePath = "C:/Users/小zz/OneDrive/桌面/poiTest.xls";//文件路径
HSSFWorkbook workbook = new HSSFWorkbook();//创建Excel文件(Workbook)
//可以创建多个表
HSSFSheet sheet = workbook.createSheet("地区表数据");//创建一个地区表表(Sheet)
//sheet = workbook.createSheet();//创建多个工作表(Sheet)
//==========================================利用sheet创建内容=====================================================
//==========================================利用sheet创建内容=====================================================
//==========================================利用sheet创建内容=====================================================
//该段表示创建一行(即第一行)
HSSFRow row = sheet.createRow(0);// 创建行,从0开始
HSSFCell cell = row.createCell(0);// 创建行的单元格,也是从0开始
cell.setCellValue("小zz");// 设置单元格内容
//该段设置列值,可以从0开始(表示第一列)
row.createCell(1).setCellValue(false);// 设置单元格内容,重载
row.createCell(2).setCellValue(new Date());// 设置单元格内容,重载
row.createCell(3).setCellValue(12.345);// 设置单元格内容,重载
//该段表示创建一行(即第二行)
row = sheet.createRow(1);// 创建行,从0开始
cell = row.createCell(0);// 创建行的单元格,也是从0开始
cell.setCellValue("我就是小zz");
//该段设置列值,可以从0开始(表示第一列)
row.createCell(1).setCellValue("我来啦");
row.createCell(2).setCellValue("我爱hi");
row.createCell(3).setCellValue("外省");
//==========================================创建文档摘要信息(属性信息),在文件右键点击属性=====================================================
//==========================================创建文档摘要信息(属性信息),在文件右键点击属性=====================================================
//==========================================创建文档摘要信息(属性信息),在文件右键点击属性=====================================================
workbook.createInformationProperties();//创建文档信息
DocumentSummaryInformation dsi=workbook.getDocumentSummaryInformation();//摘要信息
dsi.setCategory("小zz的Excel文件");//类别
dsi.setManager("小zz");//管理者
dsi.setCompany("小zz集团");//公司
SummaryInformation si = workbook.getSummaryInformation();//摘要信息
si.setSubject("怎样让客户更愿意拿出钱财来消费");//主题
si.setTitle("小zz测试文档");//标题
si.setAuthor("小zz");//作者
si.setComments("POI测试文档");//备注
//==========================================创建批注=====================================================
//==========================================创建批注=====================================================
//==========================================创建批注=====================================================
HSSFPatriarch patr = sheet.createDrawingPatriarch();
HSSFClientAnchor anchor = patr.createAnchor(0, 0, 0, 0, 5, 1, 8,5);//创建批注位置
// dx1 第1个单元格中x轴的偏移量,dy1 第1个单元格中y轴的偏移量,dx2 第2个单元格中x轴的偏移量,row1 第1个单元格的行号,col2 第2个单元格的列号,row2 第2个单元格的行号
HSSFComment comment = patr.createCellComment(anchor);//创建批注
comment.setString(new HSSFRichTextString("这是一个批注段落!"));//设置批注内容
comment.setAuthor("小zz");//设置批注作者
comment.setVisible(true);//设置批注默认显示
cell = sheet.createRow(5).createCell(1);
cell.setCellValue("测试");
cell.setCellComment(comment);//把批注赋值给单元格
//==========================================创建页眉和页脚=====================================================
//==========================================创建页眉和页脚=====================================================
//==========================================创建页眉和页脚=====================================================
HSSFHeader header =sheet.getHeader();//得到页眉
header.setLeft("页眉左边");
header.setRight("页眉右边");
header.setCenter("页眉中间");
HSSFFooter footer =sheet.getFooter();//得到页脚
footer.setLeft("页脚左边");
footer.setRight("页脚右边");
footer.setCenter("页脚中间");
FileOutputStream out = new FileOutputStream(filePath);
workbook.write(out);//保存Excel文件
System.out.println("OK!");
out.close();//关闭文件流
}
注:文章来源:网络总结,具体来源(及更多操作:更多操作)