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

sqlite 做网站数据库创新型的赣州网站建设

sqlite 做网站数据库,创新型的赣州网站建设,网站建设办什么手续,贵阳市小程序网站开发公司#x1f4da;目录 #x1f4da;简介:✨代码的构建#xff1a;#x1f4ad;Web端接口Excel操作#x1f680;下载接口#x1f680;导入读取数据接口 #x1f3e1;本地Excel文件操作⚡导出数据#x1f308;导入读取数据 #x1f4da;简介: 使用阿里巴巴开源组件Easy Exce… 目录 简介:✨代码的构建Web端接口Excel操作下载接口导入读取数据接口 本地Excel文件操作⚡导出数据导入读取数据 简介: 使用阿里巴巴开源组件Easy Excel对Excel的读取和写入。如需更详细查看官方文档当前案例主要对Web端的数据导出和Excel文件上传到服务端进行数据解析的Demo.其中主要的是工具类的用法。 工具类的主要用法 web端接口导出web接口导入本地文件读取本地文件导出 ✨代码的构建 Maven坐标 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency!--easyexcel导出--dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion3.1.0/versionexclusionsexclusionartifactIdpoi-ooxml-schemas/artifactIdgroupIdorg.apache.poi/groupId/exclusion/exclusions/dependencydependencygroupIdorg.apache.xmlbeans/groupIdartifactIdxmlbeans/artifactIdversion3.1.0/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.7/version/dependency!--这个库提供了操作 Microsoft Office 格式文件的核心功能包括读取和写入 Excel、Word、PowerPoint 等文件格式的能力。--dependencygroupIdorg.apache.poi/groupIdartifactIdpoi/artifactIdversion4.1.0/version/dependency!--这个库提供了对 OOXML 格式文件的读写能力因此在处理 .xlsx 格式的 Excel 文件时需要导入这个库。--dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion4.1.0/version/dependency/dependencies项目结构 EasyExcelUtils 工具代码我放到文章的末尾其他工具类如果需要的话可以去Gitee上拉代码自行查看 项目Demo 解析类的Excel注解解释 Data public class UserInfo {/*** 姓名*/ExcelProperty(value 姓名,index 0)private String name;/*** 性别*/ExcelProperty(value 性别,index 1)private String sex;/*** 年龄*/ExcelProperty(value 年龄,index 2)private Integer age;/*** 忽略这个字段 ExcelIgnore添加后导出和导入都会过滤这个字段*///ExcelIgnore()ExcelProperty(value 手机,index 3)private String phone; }ExcelProperty index 指定写到第几列默认根据成员变量排序(使用了index那读取的时候Excel中的文件必须和这个index对应Excel默认第一个字段就是index0)。value指定写入的名称默认成员变量的名字多个value可以参照快速开始中的复杂头ExcelIgnore 添加后导出和导入都会过滤这个字段DateTimeFormat 日期转换将Date写到excel会调用这个注解。里面的value参照java.text.SimpleDateFormatNumberFormat 数字转换用Number写excel会调用这个注解。里面的value参照java.text.DecimalFormat ExcelProperty的属性介绍 Web端接口Excel操作 本次使用的是ApiPost工具模拟接口请求 下载接口 代码 GetMapping(userInfo/excelExport)public ResultData userInfoExcelExport() {ListUserInfo userInfoList getUserInfoList();EasyExcelUtils.download(用户列表, userInfoList);return ResultData.success();}public ListUserInfo getUserInfoList() {ListUserInfo userInfoList new ArrayList();ListString sexStrList Arrays.asList(男, 女);Random sexRandom new Random();for (int i 0; i 10; i) {UserInfo userInfo new UserInfo();String sexStr sexStrList.get(sexRandom.nextInt(sexStrList.size()));userInfo.setSex(sexStr);String name UserBuildUtils.buildName(sexStr);userInfo.setName(name);userInfo.setAge(RandomUtils.nextInt(18, 35));userInfo.setPhone(UserBuildUtils.generatePhoneNumber());userInfoList.add(userInfo);}return userInfoList;}效果 下载文件中打开 导入读取数据接口 代码 PostMapping(userInfo/excelImport)public ResultData userInfoExcelImport(RequestParam(file) MultipartFile file) throws IOException {//解析导入的excel文件成对象ListUserInfo userInfoList EasyExcelUtils.readExcel(UserInfo.class, file.getInputStream());//处理对象System.out.println(userInfoList);return ResultData.success();}效果 本地文件用户列表1713077847559.xlsx文件中一共有100条用户数据接下来使用工具请求导入接口完成Excel文件数的读取 请求接口 本地Excel文件操作 ⚡导出数据 代码 /*** Excel的导出*/Testvoid ExcelExport() {String outFile System.getProperty(user.dir) File.separatorChar file;ListUserInfo userInfoList new ArrayList();ListString sexStrList Arrays.asList(男,女);Random sexRandom new Random();for (int i 0; i 100; i) {UserInfo userInfo new UserInfo();String sexStr sexStrList.get(sexRandom.nextInt(sexStrList.size()));userInfo.setSex(sexStr);String name UserBuildUtils.buildName(sexStr);userInfo.setName(name);userInfo.setAge(RandomUtils.nextInt(18, 35));userInfo.setPhone(UserBuildUtils.generatePhoneNumber());userInfoList.add(userInfo);}String outFileName 用户列表 System.currentTimeMillis() .xlsx;EasyExcelUtils.write(outFile, outFileName, UserInfo.class, userInfoList, 用户列表);}效果会在当前工程中的file文件夹中创建导出的Excel文件 导入读取数据 代码 /*** Excel导入*/Testvoid ExcelImport() {//Excel文件路径String filePath System.getProperty(user.dir) File.separatorChar file File.separatorChar readFile File.separatorChar 用户列表1713077847559.xlsx;ListUserInfo userInfoList EasyExcelUtils.readExcel(UserInfo.class, filePath);System.out.println(userInfoList);}效果 指定需要读取的文件路径 EasyExcelUtils 工具类 /*** Author itmei* Date 2024/4/13 20:49* description:* Title: EasyExcelUtils* Package com.itmei.exceldemo.utils*/ public class EasyExcelUtils {/*** 写文件** param outFileName 写的路径* param clazz 用于获取类中的Excel注解* param list 数据*/public static void write(String outFileName, Class? clazz, List? list) {// 新版本会自动关闭流不需要自己操作EasyExcel.write(outFileName, clazz).sheet().doWrite(list);}/*** 写文件** param outFileName 文件名称* param clazz 用于获取类中的Excel注解* param list 数据* param sheetName 工作簿名称*/public static void write(String outFileName, Class? clazz, List? list, String sheetName) {// 新版本会自动关闭流不需要自己操作EasyExcel.write(outFileName, clazz).sheet(sheetName).doWrite(list);}/*** 写文件** param outFile 保存的文件位置(必须存在否则报错)* param outFileName 文件名称* param clazz 用于获取类中的Excel注解* param list 数据* param sheetName 工作簿名称*/public static void write(String outFile, String outFileName, Class? clazz, List? list, String sheetName) {// 新版本会自动关闭流不需要自己操作ExcelWriterBuilder excelWriterBuilder EasyExcel.write(outFile File.separatorChar outFileName, clazz);excelWriterBuilder.sheet(sheetName).doWrite(list);}/*** 写文件** param outputStream 输出流* param list 数据* param sheetName 工作簿名称*/public static void write(OutputStream outputStream, List? list, String sheetName) {Class? clazz list.get(0).getClass();// sheetName为sheet的名字默认写第一个sheetEasyExcel.write(outputStream, clazz).sheet(sheetName).doWrite(list);}/*** 文件下载用于前端下载Excel** param sheetName 工作簿名称* param list 数据* throws IOException*/public static void download(String sheetName, List? list) {HttpServletResponse response HttpServletUtil.getResponse();try {Class? clazz list.get(0).getClass();response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);response.setCharacterEncoding(utf-8);String fileName URLEncoder.encode(sheetName _ DateUtils.format(new Date()), UTF-8).replaceAll(\\, %20) .xlsx;response.setHeader(Content-disposition, attachment;filename*utf-8 fileName);EasyExcel.write(response.getOutputStream(), clazz).autoCloseStream(false).sheet(sheetName).doWrite(list);} catch (Exception e) {handleException(response, e);}}private static void handleException(HttpServletResponse response, Exception e) {response.reset();response.setContentType(application/json);response.setCharacterEncoding(utf-8);MapString, Object map MapUtils.newHashMap();map.put(status, failure);map.put(message, 下载文件失败 e.getMessage());try {response.getWriter().println(mapToJsonString(map));} catch (IOException ioException) {ioException.printStackTrace();}}/*** 将 Map 对象转换成 JSON 格式的字符串** param map* return*/public static String mapToJsonString(MapString, Object map) {StringBuilder json new StringBuilder({);boolean first true;for (Map.EntryString, Object entry : map.entrySet()) {if (!first) {json.append(,);}json.append(\).append(entry.getKey()).append(\:);Object value entry.getValue();if (value instanceof String) {json.append(\).append(value).append(\);} else {json.append(value);}first false;}json.append(});return json.toString();}/*** 读取Excel文件并且返回集合对象** param classT* param filePath* param T* return*/public static T ListT readExcel(ClassT classT, String filePath) {ListT readAllList new ArrayList();EasyExcel.read(filePath, classT, new ReadListenerT() {Overridepublic void invoke(T data, AnalysisContext context) {//这个每一条数据解析都会来调用readAllList.add(data);}Overridepublic void doAfterAllAnalysed(AnalysisContext context) {//全部读取完成后会调用}}).sheet().doRead();return readAllList;}public static T ListT readExcel(ClassT classT, InputStream inputStream) {ListT readAllList new ArrayList();try {EasyExcel.read(inputStream, classT, new ReadListenerT() {Overridepublic void invoke(T data, AnalysisContext context) {// 这个每一条数据解析都会来调用readAllList.add(data);}Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// 全部读取完成后会调用try {inputStream.close(); // 关闭输入流} catch (IOException e) {e.printStackTrace();}}}).sheet().doRead();} catch (Exception e) {e.printStackTrace();// 处理异常情况比如日志记录或者抛出自定义异常}return readAllList;} }
http://www.hkea.cn/news/14344715/

相关文章:

  • 台州做企业网站wordpress 开源插件
  • 北京律师网站建设wordpress添加会员等级标识
  • 新手怎样学校做网站企业宣传视频制作免费版
  • 网站域名转发wordpress的注册文件
  • 网站留言系统 提交没反应360网站做二维码
  • 网站左侧漂浮代码沧州推广建站
  • 湖南营销型网站建设报价wordpress 制作论坛
  • 专业电商网站建设价格温州建校特种作业人员查询
  • 时光轴网站模板企业信息填报报送年度报告
  • 网站怎样备案毕设做网站答辩会要求当场演示吗
  • 个人网站建立邮箱注册网站申请
  • 上海网络营销有限公司seo搜索引擎是什么意思
  • 找人做网站推广做网站必须学php吗
  • 合肥营销型网站建设公司杭州建设主管部门的网站
  • 建设网站需要什么软件东莞品牌做网站
  • 一个网站如何挣钱花钱做网站不给源码
  • 电子商务网站建设教材网站建设完工报告
  • 济宁网站建设seo阳朔到桂林大巴时刻表
  • 可以做微网站的第三方平台无锡做企业网站
  • 住房建设局网站iis不能新建网站
  • 云南网站设计方案大象戌人视频入口2022
  • 平度市网站建设网站建设包含那些 内容
  • 网站基本信息设置长沙app软件制作
  • 医院网站系统源码上海网站建设口碑好
  • 申请个人网站和企业官网有什么不同线上网站建设
  • 中山企业做网站美食网站策划书范文
  • 资讯网站建设网站建设预算和维护
  • 怎么做网站营销h5网站制作公司
  • 头像网站模板线上设计师做效果图
  • 珠海企业落户申请网站广州域名企业网站建站哪家好