java临时数据文件,【POI】java服务生成List数据集合,后台服务生成xlsx临时文件,并将临时文件上传到腾讯云上...

场景:

java服务生成List数据集合,后台服务生成xlsx临时文件,并将临时文件上传到腾讯云上

今日份代码:

1.先是一个变量,作为文件名

private static final String UPLOAD_TEMP_FILE_NAME = "商品数据.xlsx";

2.核心方法:

//3.获取查询结果

List result =exportDataService.searchData(recordKey);//4.生成xlsx文件

File xlsxFile =createXlsxFile(result);//5.上传腾讯云(自己封装调用腾讯云提供的接口)

String foreverUrl = offlineSchemePromotionService.uploadAndGetDownloadUrl(xlsxFile);

3.核心思想:

1.查询数据库或者什么,获取List<> 结果集

2.将结果集,生成xlsx文件,并将文件作为临时文件保存在服务器端【这里取的是项目的根目录作为 临时目录】

3.然后将临时文件  上传至 云服务器上,最后,删除掉服务器端的 临时文件

4.生成xlsx文件

/*** 生成xlsx文件

*@paramlist

*@return*@throwsIOException*/

private File createXlsxFile(List list) throwsIOException{

XSSFWorkbook workbook= newXSSFWorkbook();

Sheet sheet= workbook.createSheet("商品数据");

XSSFFont font=workbook.createFont();

font.setBold(true);

font.setFontHeightInPoints((short) 15);

XSSFCellStyle style=workbook.createCellStyle();

style.setFillBackgroundColor(HSSFColor.RED.index);

style.setFillPattern(XSSFCellStyle.LEAST_DOTS);

style.setFont(font);

Row row= sheet.createRow(0);

row.setHeight((short) (500));

Cell cell;int cellNum = 12;for (int i = 0; i < cellNum; i++) {

cell=row.createCell(i);

sheet.setColumnWidth(i,6000);

cell.setCellValue(getCellValue(i,null,true));

cell.setCellStyle(style);

}for (int i = 0; i < list.size(); i++) {

row= sheet.createRow(i+1);

ProSearchInfoDisplay proSearchInfoDisplay=list.get(i);for (int i1 = 0; i1 < cellNum; i1++) {

cell=row.createCell(i1);

cell.setCellValue(getCellValue(i1,proSearchInfoDisplay,false));

}

}

String filePath=getFilePath();

File file= newFile(filePath);if (!file.exists()){

file.createNewFile();

}

FileOutputStream outputStream= newFileOutputStream(filePath);

workbook.write(outputStream);

outputStream.close();returnfile;

}private String getCellValue(int cellNum,ProSearchInfoDisplay display,booleanisHead){

String result= "";switch(cellNum){case 0: result = isHead ? "商品ID" : String.valueOf(display.getId()); break;case 1: result = isHead ? "物料编码" : display.getMatnrCode(); break;case 2: result = isHead ? "商品名称" : display.getName(); break;default: result = "";

}if(StringUtils.isBlank(result)){

result= "";

}returnresult;

}/*** 获取临时文件路径

*@return

*/

privateString getFilePath(){

String path= ProExportDataJob.class.getResource("/").getPath()+UPLOAD_TEMP_FILE_NAME;returnpath;

}

5.上传腾讯云(自己封装调用腾讯云提供的接口)

@OverridepublicString uploadAndGetDownloadUrl(File file) {

String foreverUrl= null;if(file.exists()){

String fileName=file.getName();

foreverUrl=dmallCosHelper.uploadAndGetDownloadUrl(file, fileName);

file.delete();//即刻删除(删除服务器上生成的临时文件)

}returnforeverUrl;

}

原文:https://www.cnblogs.com/sxdcgaq8080/p/11661009.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值