1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java批量导入导出(poi)

java批量导入导出(poi)

时间:2023-11-11 15:49:34

相关推荐

java批量导入导出(poi)

一、批量导入

1、导入时我们接参时使用MultipartFile来接受excel文件,用poi来读取文件内容

InputStream inputStream = MultipartFile.getInputStream();

Workbook wb = WorkbookFactory.create(inputStream);

2、获取某个sheet

Sheet sheet = wb.getSheetAt(0);

3、 获取sheet的行数

int rowlNum = sheet.getLastRowNum()

4、获取sheet的第一行

Row row = sheet.getRow(e);

5、获取某一行的的某一列(即是一个单元格)

Cell cell0 = row.getCell(0);

6、获取某个单元格为字符串

cell0.getRichStringCellValue()

7、 获取某个单元格为数字类型

cell0.getNumericCellValue()

注:在导入中要注意对文件格式的判断,对文件大小的判断,对单元格中文本类型的处理,当然要记得关流

二、批量导出,既然是导出我们用到输出流,在控制层参数中加入HttpServletResponse,利用XLSTransformer对象将内容封装为导出文件,

XLSTransformer transformer = new XLSTransformer();

//将读取的内容放入map

Map<String, Object> beanParams = new HashMap<String, Object>();

beanParams.put("content", content);

//读取模板文件

Resource resource = new ClassPathResource("template/export_item_template.xlsx");

BufferedInputStream is = new BufferedInputStream(resource.getInputStream());

Workbook workbook = transformer.transformXLS(is, beanParams);

//当然要对sheet的单元格合并进行控制

Sheet sheetAt = workbook.getSheetAt(0);

CellRangeAddress cellRangeAddress = new CellRangeAddress(FirstRowNum, LastRowNum, 3, 3);

sheetAt.addMergedRegion(cellRangeAddress);(可以对导出的内容遍历[content]来计算你需要合并的所有单元格)

//当然最重要的一笔就是你的模板脚本要正确(spu的集合中包含了sku集合,每一位sku中又包含了shopSupplyInfos集合,注意循环嵌套后一个属性会打印多次,但是当你对单元格合并进行控制之后此问题可以解决[也正是你所需要的样式])

:包版本级是比较落后的了

<!-- poi-->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>3.11</version>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml-schemas</artifactId>

<version>3.11</version>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>3.11</version>

</dependency>

<dependency>

<groupId>net.sf.jxls</groupId>

<artifactId>jxls-core</artifactId>

<version>1.0.6</version>

</dependency>

三、也可以用阿里的导出插件

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>easyexcel</artifactId>

<version>2.1.6</version>

</dependency>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。