读取MultipartFile类型的word文件,并提取文件具体内容

    public static void parseWord(MultipartFile file) throws ParseException, IOException {
        String buffer = "";
        try {
            if (file.getOriginalFilename().endsWith(".doc")) {
                InputStream stream = file.getInputStream();
                WordExtractor ex = new WordExtractor(stream);
                buffer = ex.getText();
                stream.close();
            } else if (file.getOriginalFilename().endsWith("docx")) {
                InputStream stream = file.getInputStream();
                XWPFDocument document = new XWPFDocument(stream);
                XWPFWordExtractor xwpfWordExtractor = new XWPFWordExtractor(document);
                buffer = xwpfWordExtractor.getText();
                stream.close();
            } else {
                System.out.println("此文件不是word文件!");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        // 截取文件内容
		// 文件内容(例如获取开始时间 文件内容:工作开始时间: ___1999___年_9___月__9__日__0__时__0__分 结束时间)
        String startTimeLine = buffer.substring(buffer.indexOf("开始时间"),buffer.indexOf("结束时间"));
        String searchContent ="始时间:";
        int startTimeStart = startTimeLine.indexOf(searchContent);
        int startTimeEnd = startTimeLine.indexOf("结束");
        String startTimeStr = startTimeLine.substring(startTimeStart+searchContent.length(),startTimeEnd).trim();
        startTimeStr = startTimeStr.replaceAll(" ", "");
        startTimeStr = startTimeStr.replaceAll("(?:年|月)", "-");
        startTimeStr = startTimeStr.replaceAll("(?:日)", " ");
        startTimeStr = startTimeStr.replaceAll("(?:时)", ":");
        startTimeStr = startTimeStr.replaceAll("(?:分)", "");
        startTimeStr = startTimeStr.replaceAll("(?:_|—)", "");
}

思路:先把上传的MultipartFile类型的word文件解析,然后从解析出来的String字符串提取文件内容,这里使用截取方法

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,可以使用以下步骤来读取MultipartFile类型word文件中的表格: 1. 首先,将MultipartFile类型文件转换为File类型的对象,以便进行后续的操作。 2. 使用Apache POI库来读取word文件。首先,创建一个XWPFDocument对象,将File对象作为参数传递给它。 3. 使用XWPFDocument对象获取所有的表格对象。 4. 遍历每个表格对象,使用XWPFTable对象获取表格中的行和单元格。 5. 遍历每个行对象,使用XWPFTableRow对象获取行中的单元格。 6. 遍历每个单元格对象,使用XWPFTableCell对象获取单元格中的文本内容。 下面是一个示例代码,演示了如何读取MultipartFile类型word文件中的表格: ```java import org.apache.poi.xwpf.usermodel.*; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class ReadWordTable { public static void main(String[] args) { // 将MultipartFile类型文件转换为File类型的对象 MultipartFile multipartFile = ...; // 从请求中获取MultipartFile对象 File file = new File(multipartFile.getOriginalFilename()); try (FileOutputStream fos = new FileOutputStream(file)) { fos.write(multipartFile.getBytes()); } catch (IOException e) { e.printStackTrace(); } try { // 创建XWPFDocument对象 XWPFDocument document = new XWPFDocument(new FileInputStream(file)); // 获取所有的表格对象 List<XWPFTable> tables = document.getTables(); // 遍历每个表格对象 for (XWPFTable table : tables) { // 获取表格中的行 List<XWPFTableRow> rows = table.getRows(); // 遍历每个行对象 for (XWPFTableRow row : rows) { // 获取行中的单元格 List<XWPFTableCell> cells = row.getTableCells(); // 遍历每个单元格对象 for (XWPFTableCell cell : cells) { // 获取单元格中的文本内容 String text = cell.getText(); System.out.println(text); } } } document.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 请注意,上述代码中的`...`表示需要根据实际情况进行替换或补充。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值