本文方法借鉴于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. Kali链接Xshell和更新源

    一.Xshell首次链接kali系统中的ssh Xshell:帮助我们去连接各种服务平台,方便管理服务器,链路可以加密处理(ssh/vsftp) 1.开启kali中的ssh服务,service ssh ...

  2. 2016蓝桥杯决赛C/C++A组第三题 打靶

    题意: 小明参加X星球的打靶比赛.比赛使用电子感应计分系统.其中有一局,小明得了96分. 这局小明共打了6发子弹,没有脱靶.但望远镜看过去,只有3个弹孔.显然,有些子弹准确地穿过了前边的弹孔. 不同环 ...

  3. 【LeetCode】解数独

    做题之前先复习下[STL中的Tuple容器] 我们知道,在Python中,大家都知道tuple这个概念,是一个只读的元素容器,容器内的元素数据类型可以不同,而在CPP中大部分的容器只能储存相同数据类型 ...

  4. 用Spring中的ResponseEntity文件批量压缩下载

    我看了很多网上的demo,先生成ZIP压缩文件,然后再下载. 我这里是生成ZIP文件流 进行下载.(核心代码没多少,就是一些业务代码) @RequestMapping(value = "/& ...

  5. Django学习路线

  6. HTML条件注释判断<!--[if IE] ![endif]-->

    很多网页中会见到这样的代码: <!--[if IE 7]> <![endif]--> /*或者*/ <!--[if lt IE 9]> <![endif]-- ...

  7. idea自定义模版

    点小灯 编辑live模版设置 模版全称 private static final Logger logger = LoggerFactory.getLogger($classname$.class); ...

  8. 送票啦~ | 京东云邀您参加AI顶级盛会GTC CHINA 2019

    本年度不可错过的AI顶级盛会 GTC CHINA2019 即将于12月16–19日在苏州举行 京东云重量级技术专家将携 AI前沿热议话题亮相 京东云相关AI最新动态,也会一并为您带上 小小剧透,快来看 ...

  9. Android自定义View——仿滴滴出行十大司机评选活动说明

    滴滴出行原版图 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 仿图 ? ? ? ? ? ? 1.分 ...

  10. [CISCN2019 总决赛 Day2 Web1]Easyweb

    0x00 知识点 1:备份文件泄露 2:SQL注入 3:php短标签 短标签<? ?>需要php.ini开启short_open_tag = On,但<?= ?>不受该条控制. ...