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

Java【代码 18】处理Word文档里的Excel表格数据(源码分享)

处理Word文档里的Excel表格数据

  • 1.原始数据
  • 2.处理程序
    • 2.1 识别替换表格表头
    • 2.2 处理多余的换行符
    • 2.3 处理后的结果
  • 3.总结

1.原始数据

Word 文档里的 Excel 表格数据,以下仅为示例数据:

读取后的字符串数据为:

"姓名\r\n身份证号\r\n手机号\r\n户籍地\r\n张三丰\r\n411381198909092222\r\n15713862222\r\n河南郑州\r\n李四方\r\n411381198909093333\r\n15713863333\r\n河南新乡\r\n王五福\r\n411381198909095555\r\n15713865555\r\n河南安阳\r\n"

每个字段都有换行:

姓名
身份证号
手机号
户籍地
张三丰
411381198909092222
15713862222
河南郑州
李四方
411381198909093333
15713863333
河南新乡
王五福
411381198909095555
15713865555
河南安阳

2.处理程序

2.1 识别替换表格表头

首先要定位表格数据的开始和结束,示例中的 sonString表格前面有一些数据,表格的后面就没有数据了【要注意这点儿】。

    /*** 处理包含表格的正文字符串** @param sonString 正文字符串* @return 处理后的正文字符串*/private String deal(String sonString) {// 1.判断是否存在表格固定表头boolean contains = sonString.contains("姓名\r\n身份证号\r\n手机号\r\n户籍地\r\n");if (contains) {String headerStr = "姓名,身份证号,手机号,户籍地\r\n";// 2.将换行数据处理为一行数据sonString = sonString.replace("姓名\r\n身份证号\r\n手机号\r\n户籍地\r\n", headerStr);// 3.处理表格数据int headerIndex = sonString.indexOf(headerStr);String personInfoStr = sonString.substring(headerIndex + headerStr.length());// 4.处理人员信息String personInfo = dealPersonInfoStr(personInfoStr);// 5.替换原有数据sonString = sonString.replace(personInfoStr, personInfo);}return sonString;}

2.2 处理多余的换行符

    /*** 处理每行数据里多余的换行符** @param personInfoStr 人员信息* @return 处理后的人员信息*/private String dealPersonInfoStr(String personInfoStr) {int infoLength = 4;String[] infoArr = personInfoStr.split("\r\n");StringBuilder personInfo = new StringBuilder();for (int i = 1; i < infoArr.length + 1; i++) {if (i % infoLength == 0) {personInfo.append(infoArr[i - 1]).append("\r\n");} else {personInfo.append(infoArr[i - 1]).append(",");}}return personInfo.toString();}

2.3 处理后的结果

"姓名,身份证号,手机号,户籍地\r\n张三丰,411381198909092222,15713862222,河南郑州\r\n李四方,411381198909093333,15713863333,河南新乡\r\n王五福,411381198909095555,15713865555,河南安阳\r\n"
姓名,身份证号,手机号,户籍地
张三丰,411381198909092222,15713862222,河南郑州
李四方,411381198909093333,15713863333,河南新乡
王五福,411381198909095555,15713865555,河南安阳

3.总结

  • 代码是根据固定表头进行的处理,表头信息可以进行配置;
  • 需要定位表格数据。

相关文章:

Java【代码 18】处理Word文档里的Excel表格数据(源码分享)

处理Word文档里的Excel表格数据 1.原始数据2.处理程序2.1 识别替换表格表头2.2 处理多余的换行符2.3 处理后的结果 3.总结 1.原始数据 Word 文档里的 Excel 表格数据&#xff0c;以下仅为示例数据&#xff1a; 读取后的字符串数据为&#xff1a; "姓名\r\n身份证号\r\n手…...

21、Tomato

难度 低(个人认为中) 目标 root权限 一个flag 使用VMware启动 kali 192.168.152.56 靶机 192.168.152.66 信息收集 端口信息收集 可以看到有个ftp服务&#xff0c;2211实际是ssh协议端口&#xff0c;80、8888是一个web服务 web测试 80端口显示一个tomato 查看源码给了一些…...

代码随想录 八股文训练营40天总结

参加训练营的话也是给自己一定的约束力&#xff0c;让自己能够定期去对八股文进行一个背诵&#xff0c;虽然说中间有几天放假&#xff0c;没有进行打卡外&#xff0c;还是比较完整的坚持下来了。 从计算机网络--操作系统--MySQL--Redis--C基础&#xff0c;虽然这些知识都有看过…...

Debian 12上安装google chrome

当前系统&#xff1a;Debian 12.7 昨天在Debian 12.7上安装Google Chrome时&#xff0c;可能由于网络原因&#xff0c;导入公钥始终失败。 导致无法正常使用命令#apt install google-chrome-stable来安装google chrome; 解决办法&#xff1a; Step1.下载当前google chrome稳…...

Python | Leetcode Python题解之第405题数字转换为十六进制数

题目&#xff1a; 题解&#xff1a; CONV "0123456789abcdef" class Solution:def toHex(self, num: int) -> str:ans []# 32位2进制数&#xff0c;转换成16进制 -> 4个一组&#xff0c;一共八组for _ in range(8):ans.append(num%16)num // 16if not num:b…...

定位坐标系

定位坐标系是地理空间信息系统中用于确定物体位置的重要工具&#xff0c;它基于数学和物理原理&#xff0c;通过一系列参数来描述物体在地球或其他天体表面的位置。以下是对定位坐标系的详细解析&#xff1a; 一、定义与分类 定位坐标系是根据一定的规则和方法&#xff0c;将…...

安全通信网络等保

通用要求 1.网络架构 1)应保证网络设备的业务处理能力满足业务高峰期需要。 设备CPU和内存使用率的峰值不大于设备处理能力的70%。 在有监控环境的条件下,应通过监控平台查看主要设备在业务高峰期的资源(CPU、内存等)使用 情况;在无监控环境的情况下,在业务高峰期登录…...

7--SpringBoot-后端开发、原理详解(面试高频提问点)

目录 SpringBoot原理 起步依赖 自动配置 配置优先级 Bean设置 获取Bean 第三方Bean SpringBoot原理 内容偏向于底层的原理分析 基于Spring框架进行项目的开发有两个不足的地方&#xff1a; 在pom.xml中依赖配置比较繁琐&#xff0c;在项目开发时&#xff0c;需要自己去找…...

wordpress主题摘要调用显示错误解决办法

如果你的wordpress主题使用了 mb_strimwidth(strip_tags(apply_filters(the_content, $post->post_content)), 0, 360, …); 这样的方式调用内容摘要 如果在主题摘要调用的地方显示错误&#xff0c;导致这个错误的原因是php没有开启&#xff1a;mbstring 开启mbstring的…...

【ESP32】ESP-IDF开发 | UART通用异步收发传输器+串口收发例程

1. 简介 UART可以说是开发者使用得最多的外设之一了&#xff0c;打印log几乎都是使用串口来实现的。UART是一种异步全双工的通信方式&#xff0c;异步传输的特性使得它仅需2根线就可以完成全双工的传输&#xff0c;但这也要求发送端和接收端的速率、停止位、奇偶校验位等都要相…...

2025秋招LLM大模型多模态面试题(六)-KV缓存

目录 为什么Transformer推理需要KV缓存?KV缓存的具体实现 没有缓存的情况下使用缓存的情况下KV缓存在解码中的阶段划分 Prefil阶段Decoding阶段KV缓存的存储类型及显存占用计算KV缓存的局限与优化策略 超长文本与复杂模型场景下的瓶颈量化方案的应用量化方案的副作用与优化方法…...

matlab边缘点提取函数

1、边缘提取 matlab自带点云边缘提取函数,用于搜索点云边界,其核心是alpha shapes算法。alpha shapes提取边缘点,主要是依据滚动圆绕点云进行旋转,实现边缘检测,原理如下图所示。具体原理及效果,可以参考之前我写的博客:基于alpha shapes的边缘点提取(matlab)-CSDN博客…...

Redis 执行 Lua,能保证原子性吗?

前言 小张目前在使用分布式锁 Redisson 实现一个需求。那我在想我能否自己手撸一个能用于分布式环境的锁呢&#xff1f;于是果然尝试。 历经一天后&#xff0c;小张手撸的锁终于写出来了&#xff0c;再次给各位看看&#xff0c;看给位有没有什么优化的建议&#xff1a; // 加…...

让模型评估模型:构建双代理RAG评估系统的步骤解析

在当前大语言模型(LLM)应用开发的背景下,一个关键问题是如何评估模型输出的准确性。我们需要确定哪些评估指标能够有效衡量提示(prompt)的效果,以及在多大程度上需要对提示进行优化。 为解决这一问题,我们将介绍一个基于双代理的RAG(检索增强生成)评估系统。该系统使用生成代理…...

RabbitMQ 高级特性——发送方确认

文章目录 前言发送方确认confirm 确认模式return 退回模式 常见面试题 前言 前面我们学习了 RabbitMQ 中交换机、队列和消息的持久化&#xff0c;这样能够保证存储在 RabbitMQ Broker 中的交换机和队列中的消息实现持久化&#xff0c;就算 RabbitMQ 服务发生了重启或者是宕机&…...

马踏棋盘c++

马踏棋盘c 题目回溯问题模型特征模型 代码 题目 马踏棋盘算法&#xff0c;即骑士周游问题。将马放在国际象棋的 88 棋盘的某个方格中&#xff0c;马按走棋规则(马走日字)进行移动。每个方格只进入一次&#xff0c;走遍棋盘上全部 64 个方格。 回溯问题模型 特征 解组织成树…...

OpenSSH从7.4升级到9.8的过程 亲测--图文详解

一、下载软件 下载openssh 下载地址&#xff1a; Downloads | Library 下载openssl Index of /pub/OpenBSD/OpenSSH/ zlib Home Site 安装的 openssl-3.3.1.tar.gz ,安装3.3.2有问题 安装有问题&#xff0c; 二、安装依赖 yum install -y perl-CPAN perl-ExtUtils-CB…...

系统分析与设计

一、结构化方法 生命周期&#xff1a;结构化分析、结构化设计、结构化编程 原则&#xff1a;程序 算法 数据结构 1、结构化分析&#xff1a;数据流图和数据字典 2、结构化设计&#xff1a; 1&#xff09;模块结构&#xff1a;信息隐藏与抽象、模块化、低耦合高内聚 2&…...

vite 使用飞行器仪表示例

这里写自定义目录标题 环境vue代码效果图 环境 jquery npm install -S jqueryjQuery-Flight-Indicators 将img、css、js拷贝到vite工程目录中 打开 jquery.flightindicators.js&#xff0c;在文件开头加上import jQuery from "jquery"; vue代码 <template>&…...

【隐私计算】Cheetah安全多方计算协议-阿里安全双子座实验室

2PC-NN安全推理与实际应用之间仍存在较大性能差距&#xff0c;因此只适用于小数据集或简单模型。Cheetah仔细设计DNN&#xff0c;基于格的同态加密、VOLE类型的不经意传输和秘密共享&#xff0c;提出了一个2PC-NN推理系统Cheetah&#xff0c;比CCS20的CrypTFlow2开销小的多&…...

Win10家庭版别再卡了!保姆级教程:手动修复gpedit.msc路径,彻底关闭Antimalware Service

Win10家庭版性能优化实战&#xff1a;精准修复组策略路径与系统服务调优每次游戏激战正酣时突然卡顿&#xff0c;或是视频渲染到关键时刻系统响应迟缓&#xff0c;很多Win10家庭版用户都遭遇过这类困扰。任务管理器里那个名为"Antimalware Service Executable"的进程…...

保姆级教程:在ROS2 Humble/Foxy的Gazebo中配置RGB-D相机(附解决点云颜色/坐标问题)

ROS2 Humble/Foxy中Gazebo深度相机仿真全攻略&#xff1a;从配置到点云问题解决在机器人仿真开发中&#xff0c;深度相机&#xff08;RGB-D&#xff09;是不可或缺的传感器之一。它能够同时提供彩色图像和深度信息&#xff0c;为SLAM、物体识别、避障等任务提供关键数据支持。本…...

AMLP:基于大语言模型的自动化机器学习势函数构建平台

1. 项目概述&#xff1a;当AI遇见原子模拟&#xff0c;AMLP如何重塑机器学习势函数构建在计算材料科学和化学物理领域&#xff0c;分子动力学模拟是我们窥探微观世界动态行为的“显微镜”。无论是研究新材料的相变过程&#xff0c;还是探索生物大分子的折叠机制&#xff0c;其核…...

亚马逊卖家公开信息数据提取:反爬攻防战与 Python 批量采集实战

摘要&#xff1a; 批量获取亚马逊&#xff08;Amazon&#xff09;第三方卖家的商业名称、信用代码和注册地址等信息&#xff0c;对于跨境 B2B 拓客和供应链分析具有重要意义。然而&#xff0c;亚马逊的 Cloudflare 盾和 Robot 验证码构成了极高的反爬门槛。本文将深度解析亚马逊…...

【2026最新】应对Turnitin查重:实测5大英文查降AI宝藏工具,一站式搞定初稿

现在的英文初稿&#xff0c;无论是期刊文章、SCI 还是普通的 Course Essay&#xff0c;基本都需要评估内容的原创度&#xff0c;进行文章 AI 率检测。很多伙伴以为纯手敲就能过&#xff0c;结果一查数据依然不尽如人意。 针对英文内容&#xff0c;咱们必须使用专门的英文检测和…...

Transient、QuickEye、VerifyEye傻傻分不清?一文讲透Ansys里三种眼图仿真方法的适用场景与避坑指南

Transient、QuickEye、VerifyEye深度解析&#xff1a;Ansys眼图仿真技术选型实战指南 在高速数字系统设计中&#xff0c;眼图分析是评估信号完整性的黄金标准。面对Ansys工具链中三种截然不同的眼图生成方法&#xff0c;工程师常常陷入选择困境——是追求精确度的传统瞬态分析&…...

SMUDebugTool终极指南:如何深度掌控AMD Ryzen处理器的隐藏性能

SMUDebugTool终极指南&#xff1a;如何深度掌控AMD Ryzen处理器的隐藏性能 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: ht…...

【紧急预警】Lindy衰减临界点已提前至第8.3个月!2024最新《营销自动化寿命健康度白皮书》限时开放前500份

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Lindy衰减临界点的理论重构与实证突破 Lindy效应传统上描述“越老越长寿”的非线性生存规律&#xff0c;但其在现代软件系统、开源生态与协议层技术栈中的适用边界正遭遇结构性挑战。本文首次将Lindy模型从静…...

企业内统一API网关与Taotoken聚合平台对接方案

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 企业内统一API网关与Taotoken聚合平台对接方案 在推进AI应用落地的过程中&#xff0c;许多中大型企业面临一个共同挑战&#xff1a…...

Matlab,plot绘图如何添加边框

matlab生成的图——编辑(E)——坐标区属性(A)——框样式——Box&#xff0c;勾选效果&#xff1a;...