关于老师源码

来源:2-8 导入Word

qq_左撇子A_0

2018-03-04 14:00:40

public ImportWordResultDto imp(ImportWordParamDto dto) {
        ImportWordResultDto result = new ImportWordResultDto();
        result.setTitle(dto.getTitle());
        HWPFDocument doc = null;
        try {
            doc = new HWPFDocument(dto.getWord().getInputStream());
            result.setContent(doc.getDocumentText().replace("\r","<br/>"));
        } catch (OfficeXmlFileException oe) {
            System.out.println("这可能是一个07版的Word");
        } catch (Exception e) {
            result.setMsg("这可能不是一个Word");
            return result;
        } finally {
            if(doc != null) {
                try {
                    doc.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        XWPFDocument docx = null;
        try {
            docx = new XWPFDocument(dto.getWord().getInputStream());
            List<XWPFParagraph> paragraphList = docx.getParagraphs();
            StringBuilder content = new StringBuilder();
            for (int i = 0; i < paragraphList.size(); i++) {
                if(i != 0) {
                    content.append("<br/>");
                }
                content.append(paragraphList.get(i).getText());
            }
            result.setContent(content.toString());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(docx != null) {
                try {
                    docx.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        return result;
    }

老师的这个源码,当是03

版的world,第一个try-catch正常执行没有异常,然后下面的try-catch是解析07

版的,岂不是会异常?,

写回答

2回答

刘翊扬

2018-03-04

我觉得可以把下面导出07版本的内容直接放在第一个

catch (OfficeXmlFileException oe) {

            System.out.println("这可能是一个07版的Word");

        } 

0
hq_左撇子A_0
h 对啊,不然03的就抛异常了
h018-03-04
共1条回复

刘翊扬

2018-03-04

第二个是会异常,你直接在catch里面写(Exception e)异常就行了。里面什么也不输出就可以了

0

0 学习 · 1363 问题

查看课程