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

网站建设电话销售不被挂断企业网站开发的感想

网站建设电话销售不被挂断,企业网站开发的感想,海南住房与城乡建设部网站,东莞站福公司工资#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.tj-hxxt.cn/news/222927.html

相关文章:

  • 怎么看网站是哪家公司做的租凭境外服务器做违规网站
  • 青州网站建设网站都有备案号吗
  • 现在一般做网站都是去哪家做的网站推广公司排行榜
  • 佛山网站建设外贸免费的黄冈网站有哪些
  • 阿里云建设网站怎样建设商城网站
  • 长春网站提升排名拓者吧装修效果图
  • 青岛企业建站程序百度官方网站网址是多少
  • 私人小工厂做网站价格想做个外贸网站
  • 外链网站有哪些成品网站超市源码
  • 设计的好看的网站湟中网站建设
  • 中国建设银行ie下载网站福州绿光网站建设工作室
  • 网页安全站点设置wordpress显示同一分类的文章
  • 九江建企业网站微信微博网站建设
  • 唐山网站建设自主开发辽宁城乡建设工程招投标网
  • 鞍山自适应网站制作公司网站建设需求表
  • 阜宁做网站需要多少钱怎么制作个人求职网站
  • 网站维护总结网站建设开发维护
  • 大型网站开发的书深圳市光明建设发展集团网站
  • 杭州seo网站推广秦皇岛开发区建设局网站
  • 百度商店杭州网站建设优化
  • 网站建设建设公司有哪些wordpress video html5
  • 电脑上做简单的网站主机公园安装wordpress要多久
  • 西安免费做网站电话让公司做网站要注意什么
  • 网站自动seoasp网站开发上传组建
  • 百度站长工具验证网站制作技术人员
  • 上海网站开发设计六安网站建设优化
  • 上海国际网站建设电脑版传奇排行榜
  • 淘宝客网站主题模版手机网站 触屏
  • 网站建设单元格边距网上平面设计
  • 网站通常用什么编程做宝山青岛网站建设