开发者

Java处理Word文档里的Excel表格数据(附源码)

开发者 https://www.devze.com 2025-07-31 10:39 出处:网络 作者: yuanzhengme
目录1.原始数据2.处理程序2.1 识别替换表格表头2.2 处理多余的换行符2.3 处理后的结果3.总结1.原始数据
目录
  • 1.原始数据
  • 2.处理程序
    • 2.1 识别替换表格表头
    • 2.2 处理多余的换行符
    • 2.3 处理后的结果
  • 3.总结

    1.原始数据

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

    Java处理Word文档里的Excel表格数据(附源码)

    读取后的字符串数据为:

    "姓名\r\n身份证号\r\n手机号\r\n户籍地\r\n张三丰\r\n411381198909092222\r\n15713862222\r\n河南郑州\r\n李四方\r\n411381198909093333\r\n15713863333\r\n河南新乡\rhttp://www.devze.com\n王五福\rtmbqSvbjbn411381198909095555\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张三丰,4113811tmbqSVBjb98909092222,15713862222,河南郑州\r\n李四方,411381198909093333,15713863333,河南新乡\r\n王五福,411381198909095555,15713865555,河南安阳\r\n"

    姓名,身份证号,手机号,户籍地

    张三丰,411381198909092222,15713862222,河南郑州

    李四方,411381198909093333,15713863333,河南新乡

    王五福,411381198909095555,15713865555,河南安阳

    3.总结

    代码是根据固定表头进行的处理,表头javascript信息可以进行配置;

    需要定位表格数据。

    到此这篇关于Java处理Word文档里的Excel表格数据(附源码)的文章就介绍到这了,更多相关Java处理Word中Excel数据内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号