当前位置: 首页 > wzjs >正文

做网络兼职网站有哪些互联网seo是什么

做网络兼职网站有哪些,互联网seo是什么,巩义网站建设案例课堂,中小微企业名录库查询工作中经常遇到Excel模板下载,然后填好后再导入的情况,简单记录下,方便下次使用 Excel模版下载(返回Base64) 模板文件存放位置 import java.util.Base64; import org.apache.commons.io.IOUtils; import org.sprin…

工作中经常遇到Excel模板下载,然后填好后再导入的情况,简单记录下,方便下次使用

Excel模版下载(返回Base64)

模板文件存放位置
在这里插入图片描述

import java.util.Base64;
import org.apache.commons.io.IOUtils;
import org.springframework.core.io.ClassPathResource;/*** 下载模板* @return*/public Response<RespDownLoad> downloadTemplateFile() {RespDownLoad respDownLoad = new RespDownLoad();try{String fileName = "税费商户白名单导入模板.xlsx";ClassPathResource resource = new ClassPathResource("excelTemplate/template.xlsx");InputStream inputStream = resource.getInputStream();// 将流转为Base64respDownLoad.setFileData(Base64.getEncoder().encodeToString(IOUtils.toByteArray(inputStream)));respDownLoad.setFileName(fileName);return  Response.success(respDownLoad, "文件输出流生成成功");}catch (Exception e) {e.printStackTrace();}return  Response.fail("99999", "文件输出失败");}
@Data
public class RespDownLoad implements Serializable {private String fileData;private String fileName;
}

文件导入-传Base64

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.XSSFWorkbook;private static final String FILE_EXTENSION = "xls,xlsx";private static final String STR_POINT = ".";private static final String STR_SPLIT = ",";private static final int MAX_SIZE = 500;/*** 文件导入 传base64* @return*/public Response uploadFileByBase64(Request<UploadReq> request) throws IOException {UploadReq body = request.getBody();if (null == body.getFileData()) {log.error("上传文件为空");throw new BizException("99999","上传文件为空");}// 获取上传时的文件名称String fileName = body.getFileName();// 文件名称校验if (checkFileName(fileName)) {log.error("[baseUpload][文件名称不允许包含危险字符]");throw new BizException("99999","文件名称不允许包含危险字符");}//文件后缀校验checkFileNameExtension(fileName);//base64转fileMultipartFile file = convertBase64ToMultipartFile(body.getFileData(), fileName);try (InputStream inputStream = file.getInputStream()) {Workbook workbook = new XSSFWorkbook(inputStream);Sheet sheet = workbook.getSheetAt(0);List<BuppsTaxMercode> list = new ArrayList<>();// 使用 sheet.rowIterator() 并跳过第一行Row firstRow = sheet.getRow(0);if (firstRow == null) {log.error("第一行不存在,文件格式错误!");throw new BizException("99999", "第一行不存在,文件格式错误!");}// 从第二行开始迭代,存入listfor (int rowIndex = 1; rowIndex <= sheet.getLastRowNum(); rowIndex++) {Row row = sheet.getRow(rowIndex);if (row == null) {continue; // 避免空行}BuppsTaxMercode info = new BuppsTaxMercode();info.setMerchCode(convertCelType(row.getCell(0)));info.setMerchName(convertCelType(row.getCell(1)));info.setTenantId(convertCelType(row.getCell(2)));info.setStatus(convertCelType(row.getCell(3)));info.setCreateDatetime(DateUtil.getCurrentDateTime14());if(org.springframework.util.StringUtils.isEmpty(info.getMerchCode())){continue;}list.add(info);}// 批量插入数据库if (!CollectionUtils.isEmpty(list)) {if (list.size() > MAX_SIZE) {log.error("超出上传上限,请分批处理!");throw new BizException("99999", "超出上传上限,请分批处理!");}manager.saveBatch(list);} else {throw new BizException("99999", "请勿上传空文件!");}} catch (Exception e) {log.error("文件导入异常", e);throw new BizException("99999", "文件导入异常");}return Response.success();}/*** 匹配字符串中的../及< > " &等危险字符** @param fileName* @return*/private Boolean checkFileName(String fileName) {String regex = "[&<>\"'/]|(\\.\\./)";Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(fileName);return matcher.find();}/*** 校验文件扩展名*/public void checkFileNameExtension(String fileName) {if (org.springframework.util.StringUtils.isEmpty(fileName) || fileName.lastIndexOf(STR_POINT) <= 0) {throw new BizException("99999","文件名不符合要求");}String fileExt = fileName.substring(fileName.lastIndexOf(STR_POINT) + 1);String[] extList = FILE_EXTENSION.split(STR_SPLIT);if (!Arrays.asList(extList).contains(fileExt.toLowerCase())) {throw new BizException("99999","不支持的文件后缀");}}public static String convertCelType(Cell cell) {switch (cell.getCellType()) {case NUMERIC:return String.valueOf((int) cell.getNumericCellValue());case STRING:return cell.getStringCellValue();default:return null;}}public static MultipartFile convertBase64ToMultipartFile(String base64String, String fileName) throws IOException {// Step 1: 解码Base64字符串byte[] decodedBytes = Base64.getDecoder().decode(base64String);// Step 2: 转换为InputStreamByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(decodedBytes);// Step 3: 创建MultipartFileMultipartFile multipartFile = new MockMultipartFile(fileName, fileName, "application/vnd.ms-excel;charset=utf-8", byteArrayInputStream);return multipartFile;}
@Data
public class UploadReq implements Serializable {private String fileData;private String fileName;
}

文件导入-传MultipartFile

 /*** 文件导入,传MultipartFile* @return*/@RequestMapping("/uploadFileByStream")@ResponseBodypublic Response uploadFileByStream(@RequestParam MultipartFile file) {if (null == file) {log.error("上传文件为空");throw new BizException("99999","上传文件为空");}// 获取上传时的文件名称String fileName = file.getOriginalFilename();// 文件名称校验if (checkFileName(fileName)) {log.error("[baseUpload][文件名称不允许包含危险字符]");throw new BizException("99999","文件名称不允许包含危险字符");}//文件后缀校验checkFileNameExtension(fileName);try (InputStream inputStream = file.getInputStream()) {Workbook workbook = new XSSFWorkbook(inputStream);Sheet sheet = workbook.getSheetAt(0);List<BuppsTaxMercode> list = new ArrayList<>();// 使用 sheet.rowIterator() 并跳过第一行Row firstRow = sheet.getRow(0);if (firstRow == null) {log.error("第一行不存在,文件格式错误!");throw new BizException("99999", "第一行不存在,文件格式错误!");}// 从第二行开始迭代,存入listfor (int rowIndex = 1; rowIndex <= sheet.getLastRowNum(); rowIndex++) {Row row = sheet.getRow(rowIndex);if (row == null) {continue; // 避免空行}BuppsTaxMercode info = new BuppsTaxMercode();info.setMerchCode(convertCelType(row.getCell(0)));info.setMerchName(convertCelType(row.getCell(1)));info.setTenantId(convertCelType(row.getCell(2)));info.setStatus(convertCelType(row.getCell(3)));info.setCreateDatetime(DateUtil.getCurrentDateTime14());if(org.springframework.util.StringUtils.isEmpty(info.getMerchCode())){continue;}list.add(info);}// 批量插入数据库if (!CollectionUtils.isEmpty(list)) {if (list.size() > MAX_SIZE) {log.error("超出上传上限,请分批处理!");throw new BizException("99999", "超出上传上限,请分批处理!");}manager.saveBatch(list);} else {throw new BizException("99999", "请勿上传空文件!");}} catch (Exception e) {log.error("文件导入异常", e);throw new BizException("99999", "文件导入异常");}return Response.success();}
http://www.dtcms.com/wzjs/47850.html

相关文章:

  • 手机网站菜单设计珠海优化seo
  • 在南昌市做网站到哪推广获客
  • 松江做公司网站百度推广培训班
  • 建设网站建设哪家便宜宁波seo外包推广平台
  • 北京微网站建设设计服务百度竞价推广流程
  • 网站文字编辑怎么做北京网站优化实战
  • 电子商务网站的建设流程图抖音的商业营销手段
  • 网站建设有没有做的必要青岛设计优化公司
  • 一家专门做海报的网站百度推广登录官网入口
  • 福建省建设执业注册管理中心网站高端品牌网站建设
  • 网站站内站建设现状武汉软件测试培训机构排名
  • 买了阿里云怎么做网站全网关键词云在哪里看
  • 郑州制作网站哪家好免费网络营销平台
  • 001做淘宝代码的网站武汉关键词排名提升
  • 做一个微信小程序要多少钱优化关键词是什么意思
  • 无锡华士镇网站建设福州seo技巧培训
  • 唐山医疗网站建设电商网站建设教程
  • 淘宝客网站备案信息2345网址导航官网官方电脑版下载
  • wordpress搭建的博客系统seo搜索优化是什么呢
  • 粉红色网站aspseo如何快速出排名
  • 怎么用服务器搭建网站产品软文是什么意思
  • 网站建设开头如何在百度上发自己的广告?
  • 微网站公司淘宝关键词怎么优化
  • 出入广州最新通知今天福州seo推广公司
  • 学编程可以建设网站吗ip软件点击百度竞价推广
  • 惠州外贸网站建设公司临沂seo
  • 装修网站官网韩国比分预测
  • 做自己的批发网站需要什么营业执照seo搜索引擎优化步骤
  • 装修展厅设计企业站seo外包
  • 什么是网站什么是网站建设电子商务网站建设方案