如何把word文档导入到数据库中——java POI
本文方法借鉴于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的更多相关文章
- 怎样把Word文档导入Excel表格
Word是现在办公中的基础文件格式了,很多的内容我们都通过Word来进行编辑,那么当我们需要将Word文档里的信息导入到Excel里面的时候,我们应该怎样做呢?下面我们就一起来看一下吧. 操作步骤: ...
- 使用Word API打开Word文档 ASP.NET编程中常用到的27个函数集
使用Word API(非Openxml)打开Word文档简单示例(必须安装Word) 首先需要引入参照Microsoft.Office.Interop.Word 代码示例如下: public void ...
- PHP实例:使用PHPExcel导入Excel2003文档和Excel2007文档到MySQL数据库中
如果要使用phpExcelReader将Excel 数据导入到mysql 数据库,请读者点击这个文章查看. 使用phpExcelReader将Excel 数据导入到mysql 数据库. 下面我们介绍另 ...
- Asp.net操作Word文档,原来这么简单啊!
引用Word对象库文件 具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为 ...
- JSP生成WORD文档,EXCEL文档及PDF文档的方法
转自:https://www.jb51.net/article/73528.htm 本文实例讲述了JSP生成WORD文档,EXCEL文档及PDF文档的方法.分享给大家供大家参考,具体如下: 在web- ...
- Android中使用POI加载与显示word文档
最近打算实现一个功能:在Android中加载显示Word文档,当然这里不是使用外部程序打开.查看一些资料后,打算采用poi实现,确定了以下实现思路: 将ftp中的word文档下载到本地. 调用poi将 ...
- java 处理word文档 (含图片,表格内容)
因为本人长期从事Oa相关项目的开发,所以处理word文档,Pdf,Excel等是在所难免的. 1.需求 处理Excel 能够用jxl 或者poi 2需求 用户在系统上填 ...
- C#(1)运用C#实现一键从Word文档转换TXT文本的功能
有想直接从Word转TXT文本的可以看看,懒得复制粘贴的也可以使用下,方便而快捷!! 首先打开vs2012创建一个简单的form窗体: 里面主要的就是一个存放Word文档的button和一个执行的bu ...
- 合并两个word文档,保持样式不变
一.需求说明 例如将封面插入到word正文上方 二.导入依赖 <dependency> <groupId>org.apache.poi</groupId> < ...
随机推荐
- 第八篇Django分页
Django分页 1.复杂版 data = [] , ): tmp = {"id": i, "name": "alex-{}".format ...
- Linux Mysql 安装 开启远程连接 供python agent 连接测试 Mark
Linux 6.3 (1) cat /etc/redhat-release uname -a 查看yum 源: 阿里源 无源运行: echo 下载阿里云的yum源配置 wget -O / ...
- Day 17:缓冲输出字符流和用缓冲输入输出实现登录、装饰者设计模式
输出字符流 Writer 所有输出字符流的基类, 抽象类. FileWriter 向文件输出字符数据的输出字符流. BufferedWriter 缓冲输出字符流 缓冲输出字符流作用: ...
- Tomcat JDK MySql 安装配置
Tomcat 7绿色版指定jdk并注册服务 https://blog.csdn.net/weixin_43976019/article/details/89386171 例如:service.b ...
- Java基础之内省
Java基础之内省 什么是内省 首先,我们要知道什么是内省.按我自己的理解就是在反射的原理上进行封装,来更方便的操作JavaBean JavaBean就是特殊格式的类,其规范为: JavaBean ...
- 查看 vps 进程网络流量
弄好了 vps 以后,感觉网络流量走的有点多,决定查查看到底什么情况. 首先安装 sar 来看看各个设备消耗的流量 apt-get install sysstat sar 的参数 DEV 表示网口, ...
- Neo4j--常用的查询语句
参考 https://www.w3cschool.cn/neo4j 准备工作 插入一堆朝代节点 插入我大明皇帝节点 创建大明皇帝统治大明王朝的关系 看一下结果 WHERE WHERE 语法 WHERE ...
- 一个简单的“将ball个球放到box各盒子中,每个盒子不多于m个,并且满足limit条件的状态”的函数
前段时间,做了一个某游戏的辅助计算工具,其中遇到一个排列组合问题.抽象出来就是 将ball个球放到box各盒子中,每个盒子不多于m个,并且满足limit条件, 请给出所有的这些状态. 随意找了下没有现 ...
- .pcd格式点云文件的显示
利用pcl_viewer工具pcl_viewer rtabmap_cloud.pcd
- 十五、Numpy-科学计算基础库
Numpy: NumPy(Numerical Python) 是科学计算基础库,提供大量科学计算相关功能,比如数据统计,随机数生成等.其提供最核心类型为多维数组类型(ndarray) ...