OSS是一个存储库,可以把文件存储在这里。
POI是,则是阿帕奇提供的一个可以操作mirco office文件的一个API。用于excel 、等文件处理。
03版的后缀是xls, HSSF 最大支持65536行
07版以后则是 .xlsx,XSSF行数没有限制,但容易内存溢出。推荐使用SXSSF,速度快,内存小
<dependencies> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.8.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!--xls--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version> </dependency> <!--xlsx--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version> </dependency> </dependencies> ========================= package com.xgz.oss; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; 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.xssf.usermodel.*; import org.junit.Test; import java.io.*; public class TestPoi { //测试poi操作excel,往excel中写内容 @Test public void tespoi() throws IOException { //1创建workbook,xls和xlsx new的对象不同。xlsx new的是XSSFWorkbook,xls new的是HSSFWorkbook Workbook workbook = new XSSFWorkbook(); //2根据work创建sheet Sheet sheet = workbook.createSheet("会员列表"); //3根据sheet行rows Row row = sheet.createRow(0); //4根据行创建列cell Cell cell = row.createCell(0); //5向cell里面设置值 cell.setCellValue("lucy"); //6使用输出流写入到文件中 OutputStream outputStream = new FileOutputStream("C:\\excelztest\\lucyxx.xlsx"); //7把workbook内容通过输出流写如文件中 workbook.write(outputStream);
//8关闭输入流 outputStream.close(); } //测试poi操作excel,读excel中内容名 @Test public void testread() throws IOException { // 1 获取读取文件的输入流 FileInputStream fileInputStream = new FileInputStream("C:\\excelztest\\lucyxx.xlsx"); //2创建workbook,需要把输入流传递进去 XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fileInputStream); //3根据workbook获取sheet XSSFSheet sheetAt = xssfWorkbook.getSheetAt(0); //4根据sheet获取rows XSSFRow row = sheetAt.getRow(0); //5根据rows获取cells XSSFCell cell = row.getCell(0); //第一行第二列的值 XSSFCell cell2 = row.getCell(1); double numericCellValue = cell2.getNumericCellValue(); System.out.println(numericCellValue); //6根据cell获取里面的值 String stringCellValue = cell.getStringCellValue(); //7打印读到的值 System.out.println(stringCellValue); //8关闭输入流 fileInputStream.close(); } }