本文方法借鉴于https://www.cnblogs.com/ljysy/p/10574197.html

在经过朋友的指导下,在处理文档的方式上有所不同。

我的数据库使用的是SQL server,这篇博客将不介绍如何将数据存储进数据库中,只进行java POI处理文档数据的介绍,在处理完数据后,如果想要存储进不同的数据库的话,只需要更改数据的连接池以及存储代码即可。

 import java.io.File;
import java.io.FileInputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph; import Bean.Article;
import Dao.IDao;
import Dao.UserDaoImpl; public class WordToSql { public static String pian;
public static String zhang; public static void readAndWriter(String fileName)throws Exception {
File file = new File(fileName);
try {
FileInputStream fis = new FileInputStream(file);
XWPFDocument xdoc = new XWPFDocument(fis);
List<XWPFParagraph>paras = xdoc.getParagraphs();
Article article = new Article();
IDao userDao = new UserDaoImpl();
boolean isFirst = true;
for(XWPFParagraph p:paras) { //遍历段落
String level = p.getStyleID();
System.out.println(level);
if(level==null)continue;
if(level.equals("12030")) { //篇的字号是小三:15
pian = p.getParagraphText();
article.setPian(pian);
}else if(level.equals("2201812")) { //章的字号是四号:14
if(!isFirst) {
userDao.add(article);
isFirst = true;
}
zhang = p.getParagraphText();
article.setZhang(zhang);
}else if(level.equals("3132020")) { //每个热词的字号是13
if(isFirst)isFirst = false;
else userDao.add(article);
String title = p.getParagraphText();
article.setTitle(title);
article.setContent(null);
}else if(level.equals("41")) { //段落的字号是小五:9
String content = p.getParagraphText();
if(article.getContent()!=null)content =article.getContent()+ content;
article.setContent(content);
}
}
fis.close();
}catch(Exception e) {
System.out.println("WordToSql:"+e.getMessage());
}
} }

在这一部分代码中,有一部分方法是POI的jar包自带的方法,如getParagraphs()和getStyleID()方法。

在博主推荐的那篇博客中,处理数据的方式也是根据字号进行,不过在博主使用后发现数据库中并没有导入数据,最后发现错误的原因是由于字号错误,于是在使用getStyleID()方法后,我将字号输出,最后发现这四种不同的字号。

isFirst的true和false将控制调用存储函数的时间点,可在仔细看过代码后,进行理解。

以下是存储函数的代码:

 import java.sql.Connection;
import java.sql.PreparedStatement; import Bean.Article;
import Util.DBUtil; public class UserDaoImpl implements IDao{ public void add(Article article) {
Connection con = DBUtil.getConnection();
PreparedStatement pre = null;
String sql = "insert into data(pian,zhang,title,context) values(?,?,?,?)";
try {
pre = con.prepareStatement(sql);
pre.setString(1,article.getPian());
pre.setString(2,article.getZhang());
pre.setString(3,article.getTitle());
pre.setString(4,article.getContent());
pre.executeUpdate();
System.out.println("添加成功!");
}catch(Exception e) {
System.out.println(e.getMessage());
}finally {
DBUtil.close(pre);
DBUtil.close(con);
}
} }

以上就是全部内容,如果并不能理解博主的方法,可以看一看博主推荐的博客。

如何把word文档导入到数据库中——java POI的更多相关文章

  1. 怎样把Word文档导入Excel表格

    Word是现在办公中的基础文件格式了,很多的内容我们都通过Word来进行编辑,那么当我们需要将Word文档里的信息导入到Excel里面的时候,我们应该怎样做呢?下面我们就一起来看一下吧. 操作步骤: ...

  2. 使用Word API打开Word文档 ASP.NET编程中常用到的27个函数集

    使用Word API(非Openxml)打开Word文档简单示例(必须安装Word) 首先需要引入参照Microsoft.Office.Interop.Word 代码示例如下: public void ...

  3. PHP实例:使用PHPExcel导入Excel2003文档和Excel2007文档到MySQL数据库中

    如果要使用phpExcelReader将Excel 数据导入到mysql 数据库,请读者点击这个文章查看. 使用phpExcelReader将Excel 数据导入到mysql 数据库. 下面我们介绍另 ...

  4. Asp.net操作Word文档,原来这么简单啊!

    引用Word对象库文件  具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为 ...

  5. JSP生成WORD文档,EXCEL文档及PDF文档的方法

    转自:https://www.jb51.net/article/73528.htm 本文实例讲述了JSP生成WORD文档,EXCEL文档及PDF文档的方法.分享给大家供大家参考,具体如下: 在web- ...

  6. Android中使用POI加载与显示word文档

    最近打算实现一个功能:在Android中加载显示Word文档,当然这里不是使用外部程序打开.查看一些资料后,打算采用poi实现,确定了以下实现思路: 将ftp中的word文档下载到本地. 调用poi将 ...

  7. java 处理word文档 (含图片,表格内容)

    因为本人长期从事Oa相关项目的开发,所以处理word文档,Pdf,Excel等是在所难免的. 1.需求      处理Excel 能够用jxl        或者poi 2需求     用户在系统上填 ...

  8. C#(1)运用C#实现一键从Word文档转换TXT文本的功能

    有想直接从Word转TXT文本的可以看看,懒得复制粘贴的也可以使用下,方便而快捷!! 首先打开vs2012创建一个简单的form窗体: 里面主要的就是一个存放Word文档的button和一个执行的bu ...

  9. 合并两个word文档,保持样式不变

    一.需求说明 例如将封面插入到word正文上方 二.导入依赖 <dependency> <groupId>org.apache.poi</groupId> < ...

随机推荐

  1. dns、网关、IP地址,主要是配置resolv.conf\network\ifcfg-eth0

    Ubuntu sudo vi /etc/network/interfac   添加 dns-nameservers 192.168.1.254dns-search stonebean.com cent ...

  2. MVC学生管理系统-阶段II(添加学生信息)

    项目源码 :https://download.csdn.net/download/weixin_44718300/11091042 前期准备,主体框架,学生列表显示    请看上一篇文章 本文是对阶段 ...

  3. slf4j NoSuchMethodError 错误 ---- 版本冲突

    java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/Stri ...

  4. uboot 学习笔记

    ram 初始化: 在 start.S 中, bl cpu_init_crit 这句,在 tq2440 中是直接调用,在韦东山里面是通过和 TEXT_BASE 进行比较,如果从 RAM 中运行就不进行 ...

  5. C++ 一般模板友元关系

    //一般模板友元关系 #include "stdafx.h" #include <iostream> using namespace std; template< ...

  6. 递归(VBA实现)

    案列: 给定n个数,取任意g个数之和等于h的组合. 采用递归的方式实现: Option Explicit Dim arr1(1 To 10000, 1 To 1) As String Dim k, g ...

  7. CNN:转置卷积输出分辨率计算

    上一篇介绍了卷积的输出分辨率计算,现在这一篇就来写下转置卷积的分辨率计算.转置卷积(Transposed convolution),转置卷积也有叫反卷积(deconvolution)或者fractio ...

  8. PHP SeasLog实现高性能日志记录

    https://www.jianshu.com/p/b5c01eb49df0 windows 安装 注意查看上面的信息 我标注了几个关键点  然后下载自己对应的 https://windows.php ...

  9. windows 10下的python开发环境

    linux子系统 按照文档 https://www.jianshu.com/p/2bcf5eca5fbc 的前五步,完成 ubuntu子系统安装. 不需安装图形桌面,无使用价值. 在https://w ...

  10. mysql快速搭建从库

    基于mysqldump快速搭建从库 https://blog.csdn.net/leshami/article/details/44994329 使用xtrbackup克隆从库 https://blo ...