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

java 读取excel/word存入mysql

引入依赖

<!--poi--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.1</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.0.1</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>4.0.1</version></dependency><!--poi-->

excel 分为两个版本,一个是xlsx一个是xls

xlsx为高版本,xls为低版本

xlsx高版本

 @Overridepublic void uploadExcel(MultipartFile file) throws IOException {//    Workbook workbook = new XSSFWorkbook(new FileInputStream("D:\\xxx\\xxx.xlsx"));Workbook workbook = new XSSFWorkbook(file.getInputStream());//获取excel中的指定表单,两种方法都可以// Sheet sheet =  workbook.getSheetAt(4);Sheet sheet = workbook.getSheet("工程项目投标报价汇总表");int lastRowNum = sheet.getLastRowNum();//当前sheet的最后一行的索引值//读取工作表的内容Row row = null;for (int i = 3; i <= lastRowNum; i++) {row = sheet.getRow(i);Bidding bidding = new Bidding();String tableId = row.getCell(0).getStringCellValue(); //序号bidding.setTableId(tableId);String projectName = row.getCell(1).getStringCellValue(); //项目或费用名称bidding.setProjectName(projectName);String amountM = row.getCell(2).getStringCellValue(); //金额bidding.setAmountM(amountM);String comment = row.getCell(3).getStringCellValue();  //备注bidding.setComment(comment);elemapper.uploadExcel(bidding);}}

xls低版本

//唯一不同为要使用HSSF创建Workbook workbook1 = new HSSFWorkbook(new FileInputStream(fullAddress));

word使用

@Overridepublic void uploadWord(MultipartFile file) throws IOException {//读取文本XWPFDocument document = new XWPFDocument(file.getInputStream());List<XWPFTable> tables = document.getTables();List<XWPFTableRow> rows = null;List<XWPFTableCell> cells;List list = new ArrayList();//起始打印cell;int w = 17;//14一循环int l = 14;Construction construction = new Construction();for (XWPFTable table : tables) {rows = table.getRows();for (XWPFTableRow row : rows) {cells = row.getTableCells();for (XWPFTableCell cell : cells) {list.add(cell.getText());}}}String packageNum = null;for (int i = w; i < list.size(); i += 14) {//下标写死就是一直取第一个值String submarkNum = (String) list.get(16);construction.setSubmarkNum(submarkNum);//写逻辑判断,把空值填上上一个if (!((String) list.get(i)).isEmpty()) {packageNum = (String) list.get(i);construction.setPackageNum(packageNum);while (((String) list.get(i)).isEmpty()) {packageNum = (String) list.get(i - l);construction.setPackageNum(packageNum);}}String projectCom = (String) list.get(i + 1);construction.setProjectCom(projectCom);String projectName = (String) list.get(i + 2);construction.setProjectName(projectName);String projectAbs = (String) list.get(i + 3);construction.setProjectAbs(projectAbs);String eleLevel = (String) list.get(i + 4);construction.setEleLevel(eleLevel);String projectPlan = (String) list.get(i + 5);construction.setProjectPlan(projectPlan);String projectNature = (String) list.get(i + 6);construction.setProjectNature(projectNature);String projectScale = (String) list.get(i + 7);construction.setProjectScale(projectScale);String methods = (String) list.get(i + 8);construction.setMethods(methods);String limitPrice = (String) list.get(i + 9);construction.setLimitPrice(limitPrice);String technologyId = (String) list.get(i + 10);construction.setTechnologyId(technologyId);String biddingFee = (String) list.get(i + 11);construction.setBiddingFee(biddingFee);String requestId = (String) list.get(i + 12);construction.setRequestId(requestId);elemapper.uploadWord(construction);}}

参考项目名elezip111

相关文章:

java 读取excel/word存入mysql

引入依赖 <!--poi--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.1</version></dependency><dependency><groupId>org.apache.poi</groupId><artif…...

11.(vue3.x+vite)组件间通信方式之ref与$parent、$children

前端技术社区总目录(订阅之前请先查看该博客) 示例效果 注: (1)ref 加在标签(div等)上,是拿到dom 对象 (2)ref加上组件上,拿到的是组件的引用 (3)让父组件获取子组件的数据或者方法需要通过defineExpose对外暴露,另外让父组件获取子组件的数据或者方法需要通过d…...

[工业自动化-12]:西门子S7-15xxx编程 - PLC从站 - ET200 SP系列详解

目录 一、概述 1.1 概述 二、系统组成 2.1 概述 2.2 与主站的通信接口模块 2.3 总线适配器 2.4 基座单元 2.5 电子模块 2.6 服务器模块 一、概述 1.1 概述 PLC ET200 SP 是西门子&#xff08;Siemens&#xff09;公司生产的一款模块化可编程逻辑控制器&#xff08;PL…...

消息队列简介

消息队列 在认识rabbitMQ之前&#xff0c;我们需要先认识下消息队列。 消息队列&#xff0c;一般简称为MQ&#xff08;Message Queue&#xff09;。先不管消息(Message)这个词&#xff0c;先看看队列(Queue)。 队列就是一种先进先出的数据结构。 所以消息队列可以简单理解为&a…...

SQL中实现汉字的拼音首字母查询

由于汉语拼音首字母也就23个&#xff0c;该方法利用汉字字符按拼音字母排序的特点来生成对应的拼单首字母&#xff0c;只需找到这23个汉语拼音首字母中分别排序在第一的汉字生成23条临时表数据用于参照&#xff0c;即可简单实现汉字匹配拼音首字母 CREATE FUNCTION f_GetPyAcr…...

今天知道LiveData的ktx是真的香

主要还是认知问题&#xff0c;Android 官网从一开始就在推ktx&#xff0c;现在都已经2. 版本了&#xff0c;但是呢&#xff0c;因为之前没有从0开始写过一个Kotlin的APP&#xff0c;就陷入了一个JAVA 思维&#xff0c;在JAVA 中我们知道要做到像协程这么处理不是不能&#xff0…...

SpringBoot中的桥接模式

桥接模式是一种结构型设计模式&#xff0c;它的主要目的是通过将抽象部分与实现部分分离&#xff0c;提高系统的灵活性和可扩展性。在桥接模式中&#xff0c;有四个主要参与者&#xff1a;抽象类、具体抽象类、桥接类和具体类。 抽象类是定义了抽象方法的基类&#xff0c;这些…...

AI爆文变现脚本:易用且免费的自动写作脚本更新了

之前给大家分享的AI爆文变现写作脚本 由于时间仓促&#xff0c;加上我对很多东西不熟悉 免费版本对新手小白来说&#xff0c;安装部署起来是非常的困难 于是这几天我加班加点把整个软件的部署简化 现在无需复杂的环境配置安装&#xff0c;下载配置下就可以使用了。 免费版…...

代码随想录算法训练营Day 49 || 123.买卖股票的最佳时机III 、188.买卖股票的最佳时机IV

123.买卖股票的最佳时机III 力扣题目链接(opens new window) 给定一个数组&#xff0c;它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意&#xff1a;你不能同时参与多笔交易&#xff08;你必须…...

threejs(11)-精通着色器编程(难点)2

一、shader着色器编写高级图案 小日本国旗 precision lowp float; varying vec2 vUv; float strength step(0.5,distance(vUv,vec2(0.5))0.25) ; gl_FragColor vec4(strength,strength,strength,strength);绘制圆 precision lowp float; varying vec2 vUv; float strength 1…...

配置cuda和cudnn出现 libcudnn.so.8 is not a symbolic link问题

cuda版本为11.2 问题如图所示&#xff1a; 解决办法&#xff1a; sudo ln -sf /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.1.1 /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8 sudo ln -sf /usr/local/cuda-11.2/targ…...

“目标值排列匹配“和“背包组合问题“的区别和leetcode例题详解

1 目标值排列匹配 1.1 从目标字符串的角度来看&#xff0c;LC139是一个排列问题&#xff0c;因为最终目标子串的各个字符的顺序是固定的&#xff1f; 当我们从目标字符串 s 的角度来看 LC139 “单词拆分” 问题&#xff0c;确实可以认为它涉及到排列的概念&#xff0c;但这种…...

火星加载WMTS服务

这是正常的加载瓦片 http://192.168.1.23:8008/geoserver/mars3d/gwc/service/wmts?tilematrixEPSG%3A4326%3A7&layermars3d%3Abuffer&style&tilerow46&tilecol197&tilematrixsetEPSG%3A4326&formatimage%2Fpng&serviceWMTS&version1.0.0&…...

为什么要学习去使用云服务器,外网 IP能干什么,MAC使用Termius连接阿里云服务器。保姆级教学

目录 引言 可能有人想问为什么要学习云服务器&#xff1f; &#xff08;获取Linux环境&#xff0c;获得外网IP) 二、安装教程 引言 可能有人想问为什么要学习云服务器&#xff1f; &#xff08;获取Linux环境&#xff0c;获得外网IP) 1.虚拟机&#xff08;下策&#xff09; …...

VS c++多文件编译

前言&#xff1a;记录下我这个菜鸡学习的过程&#xff0c;如有错误恳请指出&#xff0c;不胜感激&#xff01; 1.简单多文件编译调试 文件目录&#xff1a; 编译&#xff1a; -g选项是告诉编译器生成调试信息&#xff0c;这样可以在程序崩溃或出现错误时更容易地进行调试。这…...

JVM关键指标监控(调优)

JVM 99%情况下不需要调优 使用性能更好的垃圾回收器 核心指标 针对单台服务器而言&#xff1a; jvm.gc.time: 每分钟GC耗时在1s以内 500ms以内最佳 jvm.gc.meantime: 每次YGC耗时在100ms以内&#xff0c;50ms以内最佳 jvm.fullgc.count: FGC(老生代垃圾回收)最多几小时1次&…...

【Proteus仿真】【Arduino单片机】LCD1602-IIC液晶显示

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用PCF8574、LCD1602液晶等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602液晶显示各种效果。 二、软件设计 /* 作者&#xff1a;嗨小…...

skynet学习笔记03— 服务

01、API newservice(name, ...)&#xff1a; 阻塞的形势启动一个名为 name 的新服务&#xff0c;待start函数执行完后会返回这个服务的地址。uniqueservice(name, ...)&#xff1a;针对于当前节点&#xff0c;启动一个唯一服务&#xff08;相当于单例&#xff09;&#xff0c;…...

34 Feign最佳实践

2.4.2.抽取方式 将Feign的Client抽取为独立模块&#xff0c;并且把接口有关的POJO、默认的Feign配置都放到这个模块中&#xff0c;提供给所有消费者使用。 例如&#xff0c;将UserClient、User、Feign的默认配置都抽取到一个feign-api包中&#xff0c;所有微服务引用该依赖包…...

软文推广中如何搭建媒体矩阵

媒体矩阵简单理解就是在不同的媒体平台上&#xff0c;根据运营目标和需求&#xff0c;建立起全面系统的媒体布局&#xff0c;进行多平台同步运营。接下来媒介盒子就来和大家聊聊&#xff0c;企业在软文推广过程中为什么需要搭建媒体矩阵&#xff0c;又该如何搭建媒体矩阵。 一、…...

Cosmos-Reason1-7B多场景落地:数学证明、算法推导、LeetCode解析一体化

Cosmos-Reason1-7B多场景落地&#xff1a;数学证明、算法推导、LeetCode解析一体化 1. 工具概览&#xff1a;你的本地推理助手 Cosmos-Reason1-7B是一个专门为推理任务设计的本地大语言模型工具。它基于NVIDIA官方发布的Cosmos-Reason1-7B模型开发&#xff0c;针对数学证明、…...

2025届最火的十大AI辅助写作平台推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于毕业论文写作期间&#xff0c;合理借助人工智能工具&#xff0c;能够明显提高文献检索效率…...

LaTeX排版技巧:Elsevier期刊投稿中的图表与表格优化实战

1. Elsevier期刊投稿中的LaTeX图表排版核心技巧 第一次用LaTeX给Elsevier投稿时&#xff0c;我被编辑退回的修改意见惊呆了——所有图表位置错乱&#xff0c;双栏排版像被暴力拆解的积木。后来才发现&#xff0c;期刊模板对图表有特殊"洁癖"。比如用5p参数启动双栏模…...

AI写代码:告别重复造轮子的高效开发术

告别重复造轮子&#xff1a;Codex写脚本的技术文章大纲核心主题探讨如何利用OpenAI Codex等AI工具高效生成脚本代码&#xff0c;避免重复开发常见功能模块&#xff0c;提升开发效率与代码质量。技术背景Codex的工作原理&#xff1a;基于GPT-3的代码生成模型&#xff0c;支持多种…...

云原生与容器--Service Mesh (Istio) 入门实战

系列导读&#xff1a;本篇将深入讲解 Service Mesh 与 Istio 的核心概念与实战应用。 文章目录一、Service Mesh 概述1.1 什么是 Service Mesh&#xff1f;1.2 为什么需要 Service Mesh&#xff1f;1.3 Sidecar 模式二、Istio 架构2.1 核心组件2.2 安装部署2.3 启用 Sidecar 注…...

如何在 Linux 系统安装 Nginx?附可视化安装与管理教程

很多人在刚接触服务器时&#xff0c;都会遇到一个非常实际的问题&#xff1a;如何在系统安装 Nginx&#xff1f; Nginx 作为目前最常用的 Web 服务软件之一&#xff0c;广泛应用于静态网站部署、反向代理、负载均衡、HTTPS 证书配置以及前后端项目发布。对于运维人员、站长或者…...

为什么你的手势识别准确率卡在82.3%?2026奇点大会公布大模型训练数据盲区的3个致命偏差

第一章&#xff1a;2026奇点大会手势识别准确率瓶颈的全局洞察 2026奇点智能技术大会(https://ml-summit.org) 当前&#xff0c;2026奇点大会所部署的实时手势识别系统在多光照、低延迟&#xff08;<35ms端到端&#xff09;约束下&#xff0c;整体准确率稳定在92.7%0.4%&am…...

JD_AutoComment图片审核难题:从系统瓶颈到企业级解决方案的架构演进

JD_AutoComment图片审核难题&#xff1a;从系统瓶颈到企业级解决方案的架构演进 【免费下载链接】jd_AutoComment 自动评价,仅供交流学习之用 项目地址: https://gitcode.com/gh_mirrors/jd/jd_AutoComment 京东自动评价系统JD_AutoComment在实现自动化评论功能时&#…...

PyTorch神经网络入门:aws-machine-learning-university-accelerated-nlp 深度学习实战

PyTorch神经网络入门&#xff1a;aws-machine-learning-university-accelerated-nlp 深度学习实战 【免费下载链接】aws-machine-learning-university-accelerated-nlp Machine Learning University: Accelerated Natural Language Processing Class 项目地址: https://gitco…...

Docker 和 Kubernetes 部署 Java 应用最佳实践:构建现代化容器化系统

Docker 和 Kubernetes 部署 Java 应用最佳实践&#xff1a;构建现代化容器化系统别叫我大神&#xff0c;叫我 Alex 就好。今天我们来聊聊 Docker 和 Kubernetes 部署 Java 应用的最佳实践&#xff0c;这些实践可以帮助我们更高效地管理和运行容器化应用。一、引言 容器化技术已…...