如何把word文档导入到数据库中——java POI
时间:2021-07-01 10:21:17
帮助过:20人阅读
import java.io.File;
2 import java.io.FileInputStream;
3 import java.util.HashMap;
4 import java.util.List;
5 import java.util.Map;
6
7 import org.apache.poi.xwpf.usermodel.XWPFDocument;
8 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
9
10 import Bean.Article;
11 import Dao.IDao;
12 import Dao.UserDaoImpl;
13
14 public class WordToSql {
15
16 public static String pian;
17 public static String zhang;
18
19 public static void readAndWriter(String fileName)
throws Exception {
20 File file =
new File(fileName);
21 try {
22 FileInputStream fis =
new FileInputStream(file);
23 XWPFDocument xdoc =
new XWPFDocument(fis);
24 List<XWPFParagraph>paras =
xdoc.getParagraphs();
25 Article article =
new Article();
26 IDao userDao =
new UserDaoImpl();
27 boolean isFirst =
true;
28 for(XWPFParagraph p:paras) {
//遍历段落
29 String level =
p.getStyleID();
30 System.out.println(level);
31 if(level==
null)
continue;
32 if(level.equals("12030")) {
//篇的字号是小三:15
33 pian =
p.getParagraphText();
34 article.setPian(pian);
35 }
else if(level.equals("2201812")) {
//章的字号是四号:14
36 if(!
isFirst) {
37 userDao.add(article);
38 isFirst =
true;
39 }
40 zhang =
p.getParagraphText();
41 article.setZhang(zhang);
42 }
else if(level.equals("3132020")) {
//每个热词的字号是13
43 if(isFirst)isFirst =
false;
44 else userDao.add(article);
45 String title =
p.getParagraphText();
46 article.setTitle(title);
47 article.setContent(
null);
48 }
else if(level.equals("41")) {
//段落的字号是小五:9
49 String content =
p.getParagraphText();
50 if(article.getContent()!=
null)content =article.getContent()+
content;
51 article.setContent(content);
52 }
53 }
54 fis.close();
55 }
catch(Exception e) {
56 System.out.println("WordToSql:"+
e.getMessage());
57 }
58 }
59
60 }
在这一部分代码中,有一部分方法是POI的jar包自带的方法,如getParagraphs()和getStyleID()方法。
在博主推荐的那篇博客中,处理数据的方式也是根据字号进行,不过在博主使用后发现数据库中并没有导入数据,最后发现错误的原因是由于字号错误,于是在使用getStyleID()方法后,我将字号输出,最后发现这四种不同的字号。
isFirst的true和false将控制调用存储函数的时间点,可在仔细看过代码后,进行理解。
以下是存储函数的代码:
1 import java.sql.Connection;
2 import java.sql.PreparedStatement;
3
4 import Bean.Article;
5 import Util.DBUtil;
6
7 public class UserDaoImpl implements IDao{
8
9 public void add(Article article) {
10 Connection con = DBUtil.getConnection();
11 PreparedStatement pre = null;
12 String sql = "insert into data(pian,zhang,title,context) values(?,?,?,?)";
13 try {
14 pre = con.prepareStatement(sql);
15 pre.setString(1,article.getPian());
16 pre.setString(2,article.getZhang());
17 pre.setString(3,article.getTitle());
18 pre.setString(4,article.getContent());
19 pre.executeUpdate();
20 System.out.println("添加成功!");
21 }catch(Exception e) {
22 System.out.println(e.getMessage());
23 }finally {
24 DBUtil.close(pre);
25 DBUtil.close(con);
26 }
27 }
28
29 }
以上就是全部内容,如果并不能理解博主的方法,可以看一看博主推荐的博客。
如何把word文档导入到数据库中——java POI
标签:stream ash zhang lse 导入 first util bsp add