前瞻
上回咱们说道, 文件(Excel,图片,音乐,视频)向在java代码中操作它们,总得有个桥梁把他们读到代码里,这个桥梁就是流,关于流的知识放在下面传送门里了:
传送门
poi这个jar包(依赖)
poi-4.1.2.jar
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
这里面提供了一些类,咱不管,今天只看一个,
叫做:HSSFWorkbook这个类,为啥看它呢,你先看下面这段代码:
public class ExcelUtil{
...
/**
*用来对上传的file(Excel)转成java可操作的Workbook对象
**/
public static Workbook readExcel(MultipartFile file){
Workbook wb = null;
// 上传的文件对应的输入流---这是准备进入代码里了,但是buffer怎么选呢?
// 还用 byte[]数组吗? 显然不合适 ---->没法操作啊--->今天的主角就要登场解决这个问题了
InputStream is = file.getInputStream();
// 这个方法可以得到文件名比如 机密文件.xls 、 摸鱼大全.txt
String originalFilename = file.getOriginalFilename();
// 根据不同的文件名来选择不同的buffer,才是正确的做法
String extString = originalFilename.substring(originalFilename.lastIndexOf("."));
try{
if(".xls".equals(extString)){
return wb = new HSSFWorkbook(is)
}
if(".xlsx".equals(extString)){
return wb = new XSSFWorkbook(is)
}
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
return wb;
}
}
而这个wb, 你就可以 wb.getSheet()…对wb一顿操作吧 少年!
输出一个Excel
下回再说吧~