首页 > 其他分享 >Excel导入功能参考

Excel导入功能参考

时间:2023-03-28 12:35:23浏览次数:31  
标签:cellStyle 参考 Excel acceptDictExcel cell createCell 导入 setCellValue

1、导入的接口
@PostMapping(value = "/importDict",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ApiOperation(value = "字典导入")
public void importDict(HttpServletResponse response,@RequestParam("file") MultipartFile file){
try {
dictService.importDict(response,file);
}catch (Exception e){
CommonResult.fail("导出失败!"+e);
}
}

 2、导入的服务层方法

@Override
public void importDict(HttpServletResponse response, MultipartFile file) {
List<AcceptDictExcel> list = ExcelUtils.excelToList(file, AcceptDictExcel.class);
try {
for (AcceptDictExcel acceptDictExcel : list) {
String dictNo = acceptDictExcel.getDictNo();
QueryWrapper<AcceptDict> wrapper = new QueryWrapper<>();
wrapper.eq("dict_no",dictNo);
int count = dictMapper.selectCount(wrapper);
if (StringUtils.isEmpty(acceptDictExcel.getDictNo())){
acceptDictExcel.setResult("数据编码不能为空!");
continue;
}
if (StringUtils.isEmpty(acceptDictExcel.getDictName())){
acceptDictExcel.setResult("数据名称不能为空!");
continue;
   }
            if (count>0){
acceptDictExcel.setResult("数据编码已存在!");
continue;
}
AcceptDict dict = new AcceptDict();
dict.setDictNo(acceptDictExcel.getDictNo());
dict.setDictName(acceptDictExcel.getDictName());
dictMapper.insert(dict);
acceptDictExcel.setResult("成功");
}
}catch (Exception e){
System.out.println(e);
}
XSSFWorkbook workbook = new XSSFWorkbook();

CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setBorderTop(BorderStyle.THIN);

Font font = workbook.createFont();
font.setFontName("宋体");
font.setFontHeightInPoints((short) 12);
cellStyle.setFont(font);


XSSFSheet sheet = workbook.createSheet("Sheet1");
Row row0 = sheet.createRow(0);
Cell cell0 = row0.createCell(0);
cell0.setCellValue("数据编码");
cell0.setCellStyle(cellStyle);

Cell cell1 = row0.createCell(1);
cell1.setCellValue("数据名称");

Cell cell2 = row0.createCell(2);
cell2.setCellValue("导入结果");

for (AcceptDictExcel dictExcel : list) {
XSSFRow row = sheet.createRow(sheet.getLastRowNum() + 1);
XSSFCell cell = row.createCell(0);
cell.setCellValue(dictExcel.getDictNo());
cell = row.createCell(1);
cell.setCellValue(dictExcel.getDictName());
cell = row.createCell(2);
cell.setCellValue(dictExcel.getResult());

}
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
workbook.write(os);
os.close();
} catch (Exception e) {
e.printStackTrace();
}
ExcelUtils.download(response, "安全验收数据字典-导入结果.xlsx", new ByteArrayInputStream(os.toByteArray()));
}

3、ExcelUtils工具类中的excelToList方法;
public static <T> List<T> excelToList(MultipartFile excelFile, Class<T> clazz) {
    List<T> dataList = null;

try {
InputStream inputStream = excelFile.getInputStream();
dataList = ((ExcelReaderBuilder)EasyExcel.read(inputStream).head(clazz)).sheet().doReadSync();
return dataList;
} catch (Exception var4) {
var4.printStackTrace();
return null;
}
}

标签:cellStyle,参考,Excel,acceptDictExcel,cell,createCell,导入,setCellValue
From: https://www.cnblogs.com/heyi-77/p/17264708.html

相关文章

  • Android Studio 导入 Eclipse 的代码后,运行时中文显示乱码
    AndroidStudio导入Eclipse的代码后,先是编辑框中中文显示乱码。使用中的方法修改设置后显示不再乱码。但运行后,程序中的中文又出现乱码的情况。在的Andorid论坛中......
  • 将已有数据表中的数据导入Android Studio
    1.首先在androidstudio中建个空表2.右键导出,名字保持一致  3.打开navicat,新建连接(SQLite),连接名随便取一个,数据库文件选择刚才导出的 4.右键选择导入向导,选择cs......
  • Python3 导入 excel 到 MySQL 数据库
    不必细说的背景最近在做一个Java项目,需要处理一批历史数据,由于工具限制,采用了Python导入excel到数据库的方式。 安装依赖包pipinstallpandaspipinstal......
  • linux下串口通讯参考及接收始最多为8个字节
    Linux下RS485通讯测试,接收的数据字节只有8个。解决方法:关键代码:structtermiosoptions;if(0!=tcgetattr(s_fd,&options)) {  printf("eadrs485termioserror!......
  • delphi TMS FlexCel 设置页面布局(打印、导出调整为合适大小)
    TMSFlexCel设置页面布局(打印、导出调整为合适大小)属性和方法TXlsFile.PrintScalepropertyTXlsFile.PrintScale:Integer页面布局中的缩放比例,扩大/缩小工作表的百......
  • vue使用&Mac+idea的vue开发环境配置参考
    vue使用&Mac+idea的vue开发环境配置参考链接:https://blog.csdn.net/weixin_43123409/article/details/125624203......
  • Swift快速参考手册
       小结了Swift中常用的一些语法供大家参考,主要包括:类的定义方法对象的创建与使用定义变量控制流字符串String例子数组Array例子字典Dictionary例子  ......
  • 服务器上导入文件夹中的模块错误
    importsysimportossys.path.append(os.path.dirname(sys.path[0]))可以在自己代码的顶端加入以上代码 来源:(13条消息)python服务器运行代码报错ModuleNot......
  • FileSaver 下载 base64 excel,
    以下是一个示例,演示如何使用FileSaver将base64编码的Excel文件保存到本地:yarnaddfile-saver-dimport*asFileSaverfrom'file-saver';//将base64编码的......
  • DWG图纸可以直接导入3D,你知道吗?
    在日常工作中,设计工程师经常会使用浩辰CAD、浩辰CAD建筑等二维制图软件来进行创意设计,因而企业内部可能累积了大量的DWG图纸。近年来,随着3D设计软件逐渐兴起,越来越多的企业......