当前位置:Gxlcms > 数据库问题 > 如何把word文档导入到数据库中——java POI

如何把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   

人气教程排行