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

西安关键词网站排名wordpress动态插件

西安关键词网站排名,wordpress动态插件,长沙网站seo多少钱,工程信息网站哪家做的较好#x1f3e1;浩泽学编程#xff1a;个人主页 #x1f525; 推荐专栏#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 #x1f6f8;学无止境#xff0c;不骄不躁#xff0c;知行合一 文章目录 … 浩泽学编程个人主页 推荐专栏《深入浅出SpringBoot》《java对AI的调用开发》              《RabbitMQ》《Spring》《SpringMVC》《项目实战》 学无止境不骄不躁知行合一 文章目录 前言一、EasyExcel转CSV二、分割建表入库总结 前言 本文主要介绍使用EasyExcel读取Excel内数据并转换为csv格式数据String字符串然后实现字符串分割分割出属性名和属性值建表插入MySQL数据库中。 一、EasyExcel转CSV 使用EasyExcel读取Excel文件转换为csv数据也就是转化为一个字符串。 工具类 /*** Version: 1.0.0* Author: Dragon_王* ClassName: ExcelUtils* Description: Excel相关工具类* Date: 2024/3/9 11:24*/import cn.hutool.core.collection.CollUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.support.ExcelTypeEnum; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.web.multipart.MultipartFile;import java.io.IOException; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors;/*** Excel 相关工具类*/ Slf4j public class ExcelUtils {/*** excel 转 csv** param multipartFile* return*/public static String excelToCsv(MultipartFile multipartFile) {// 读取数据ListMapInteger, String list null;try {list EasyExcel.read(multipartFile.getInputStream()).excelType(ExcelTypeEnum.XLSX).sheet().headRowNumber(0).doReadSync();} catch (IOException e) {log.error(表格处理错误, e);}if (CollUtil.isEmpty(list)) {return ;}// 转换为 csvStringBuilder stringBuilder new StringBuilder();// 读取表头LinkedHashMapInteger, String headerMap (LinkedHashMap) list.get(0);ListString headerList headerMap.values().stream().filter(ObjectUtils::isNotEmpty).collect(Collectors.toList());stringBuilder.append(StringUtils.join(headerList, ,)).append(\n);// 读取数据for (int i 1; i list.size(); i) {LinkedHashMapInteger, String dataMap (LinkedHashMap) list.get(i);ListString dataList dataMap.values().stream().filter(ObjectUtils::isNotEmpty).collect(Collectors.toList());stringBuilder.append(StringUtils.join(dataList, ,)).append(\n);}return stringBuilder.toString();} } 实际运用中只需要如下调用 //传入的是Excel文件不是路径哦 ExcelUtils.excelToCsv(Excel文件);Excel文件格式如下 读取的数据如下格式这里我用加号拼接更清晰实际上就是一个包含换行符的字符串并不包含号 日期,阅读量\n 3,253\n 4,408\n 5,363\n 6,955\n 7,496\n 8,1310\n 9,748;二、分割建表入库 将获取的csv数据其实这里就是一个String字符串记住现在是字符串不是数组。首先我们分析一下如何从字符串从分割出属性名日期、阅读量以及插入表中的每行属性值3 2534 408… 找出第一个换行符\n的位置index然后从第一位切割到index这时候就得到属性名的字符串。再以英文逗号为分割符进行分割得到属性名数组。从index切割到字符串最后的位置就是全部属性值那么如何分割得到每行的属性值呢同样以换行符为分割符进行分割得到每行属性值的数组。这里注意一下数组中的每个元素是一个包含一行值的字符串如“3,253”分割得到的属性值数组内的每个元素再以英文逗号为分割符进行分割得到每行属性值如3和253最后根据属性名和属性值动态构建sql语句进行创建表插入值的操作。 分割csv数据并调用自定义建表和插入函数 //定义表名String tableName test;//获取第一个换行符的索引int index csvData.indexOf(\n);//分割出属性名字符串如日期,阅读量String colum csvData.substring(0,index);//得到属性名数组如{日期,阅读量}String[] colums colum.split(,);//得到全部属性值字符串如3,253\n4,408\n5,363\n6,955\n7,496\n8,1310\n9,748String data csvData.substring(index).trim();//得到全部属性值数组如{3,253,4,408,5,3636,955.......}String[] split_data data.split(\n);//调用建表tableCreationUtils.createTable(tableName,colums);//调用插入tableCreationUtils.Dynamicinsert(tableName,colums,split_data);动态构造建表sql和插入sql工具类 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component;import javax.sql.DataSource; import java.sql.SQLException;/*** 构建生成表sql** version 1.0.0* Author: dragon_王* Date: 2024/3/11 20:45:16*/ Component public class TableCreationUtils {private final JdbcTemplate jdbcTemplate;Autowiredpublic TableCreationUtils(DataSource dataSource){this.jdbcTemplate new JdbcTemplate(dataSource);}/*** 动态构建创建表的sql语句并执行** param tableName 表名字符串* param columnNames 属性名数组* return: void* Date: 2024-03-13 23:23:36*/public void createTable(String tableName, String[] columnNames) {String sql CREATE TABLE tableName (;for (int i 0; i columnNames.length; i) {sql columnNames[i] VARCHAR(255);if (i columnNames.length - 1) {sql , ;}}sql );;jdbcTemplate.execute(sql);}/*** 动态构建插入sql语句并执行** param tableName 表名字符串* param columnName 属性名数组如{日期阅读}* param rowData 属性值数组如{3,253,4,408,5,3636,955.......}* return: void* Date: 2024-03-13 23:24:09*/public void Dynamicinsert(String tableName, String[] columnName,String[] rowData) throws SQLException {//属性值为空就抛出异常if (rowData null || rowData.length 0) {throw new IllegalArgumentException(Row data must not be null or empty);}for (int i 0;i rowData.length;i){//传进来的是所有属性值数组如{3,253,4,408,5,3636,955.......}//所以以将每个元素取出以英文逗号分割得到插入的每行元素如[3,253]String[] row rowData[i].split(,);// 构建占位符StringBuilder columnNames new StringBuilder();StringBuilder placeholders new StringBuilder();for (int j 0; j row.length; j) {if (j 0) {columnNames.append(, );placeholders.append(, );}columnNames.append(columnName[j]);placeholders.append(?); // 使用?作为PreparedStatement的占位符}// 构建完整的SQL语句String sql INSERT INTO tableName ( columnNames ) VALUES ( placeholders );// 使用JdbcTemplate执行插入操作如第一次循环insert into tablename (日期,阅读) values (?,?)//row[3,253]jdbcTemplate.update(sql,row);}}}上面代码有以上面EXcel数据为例子的详细讲解我就不再赘诉很简单的思路。 总结 以上就是使用EasyExcel读取Excel内数据并转换为csv格式数据String字符串然后实现字符串分割分割出属性名和属性值建表插入MySQL数据库中的详细讲解。
http://www.pierceye.com/news/750501/

相关文章:

  • 网站开发安全模块方案网站运营方案怎么写?
  • 章丘网站制作手机网站 微信平台
  • 自定义功能的网站做坏事网站
  • 做农村电子商务的网站有哪些wordpress批量修改引用网址
  • 简述建立网站的步骤内蒙古建设监理协会网站
  • 网站上传格式工信部 网站备案查询
  • 网站开发怎么让别人看到网站设计主流尺寸
  • 都匀经济开发区建设局网站华宇网站建设
  • 南谯区住房和城乡建设局网站大连百度推广优化
  • 东莞设计网站公司被邀请做刷客会不会碰到钓鱼网站
  • 阿里云服务器多个网站南充网络推广
  • 电子商务网站建设规划设计任务书wordpress 有道云笔记
  • 广州市地铁站地图潍坊网站建设方案
  • 买一个网站服务器多少钱企业 怎么建交互网站
  • 国产网站开发工具公司福建新闻最新消息
  • 云主机和云虚拟主机优化教程网站推广排名
  • 佛山网站建设开发二维码生成器永久免费版下载
  • 衡水网站建设衡水网站建设网站建设南宁
  • 汽车网站推广策划方案wordpress又拍云cdn伪静态
  • 用dw建立网站网站设计师要学什么
  • 网站模块建设中二级医院做网站
  • 求大神帮忙做网站云网站后台
  • 保护稀有动物网站建设策划书凡科建站多少钱
  • 怎么通过做网站来赚钱坪山网站建设方案
  • 网站架构设计师工作内容传媒在线网站模板
  • 重庆哪里有做网站的公司互联网公司网站建设ppt
  • 海南的网站建设公司wordpress最新版中午
  • 网站推广需要域名迁移iis7建设网站
  • 网站建设实践报告小结网页版传奇服务端
  • 安顺住房和城乡建设部网站做网站用什么开发工具