java 读取excel/word存入mysql

引入依赖

XML 复制代码
<!--poi-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>4.0.1</version>
        </dependency>
        <!--poi-->

excel 分为两个版本,一个是xlsx一个是xls

xlsx为高版本,xls为低版本

xlsx高版本

java 复制代码
 @Override
    public void uploadExcel(MultipartFile file) throws IOException {

//    Workbook workbook = new XSSFWorkbook(new FileInputStream("D:\\xxx\\xxx.xlsx"));

        Workbook workbook = new XSSFWorkbook(file.getInputStream());
        //获取excel中的指定表单,两种方法都可以
        // Sheet sheet =  workbook.getSheetAt(4);
        Sheet sheet = workbook.getSheet("工程项目投标报价汇总表");
        int lastRowNum = sheet.getLastRowNum();//当前sheet的最后一行的索引值

        //读取工作表的内容
        Row row = null;

        for (int i = 3; i <= lastRowNum; i++) {
            row = sheet.getRow(i);
            Bidding bidding = new Bidding();

            String tableId = row.getCell(0).getStringCellValue(); //序号
            bidding.setTableId(tableId);
            String projectName = row.getCell(1).getStringCellValue(); //项目或费用名称
            bidding.setProjectName(projectName);
            String amountM = row.getCell(2).getStringCellValue(); //金额
            bidding.setAmountM(amountM);
            String comment = row.getCell(3).getStringCellValue();  //备注
            bidding.setComment(comment);

            elemapper.uploadExcel(bidding);
        }
    }

xls低版本

java 复制代码
//唯一不同为要使用HSSF创建
 Workbook workbook1 = new HSSFWorkbook(new FileInputStream(fullAddress));

word使用

java 复制代码
@Override
    public void uploadWord(MultipartFile file) throws IOException {
        //读取文本
        XWPFDocument document = new XWPFDocument(file.getInputStream());

        List<XWPFTable> tables = document.getTables();

        List<XWPFTableRow> rows = null;
        List<XWPFTableCell> cells;
        List list = new ArrayList();
        //起始打印cell;
        int w = 17;
        //14一循环
        int l = 14;
        Construction construction = new Construction();
        for (XWPFTable table : tables) {
            rows = table.getRows();
            for (XWPFTableRow row : rows) {
                cells = row.getTableCells();
                for (XWPFTableCell cell : cells) {
                    list.add(cell.getText());
                }
            }
        }
        String packageNum = null;
        for (int i = w; i < list.size(); i += 14) {


            //下标写死就是一直取第一个值
            String submarkNum = (String) list.get(16);
            construction.setSubmarkNum(submarkNum);

            //写逻辑判断,把空值填上上一个


            if (!((String) list.get(i)).isEmpty()) {
                packageNum = (String) list.get(i);
                construction.setPackageNum(packageNum);

                while (((String) list.get(i)).isEmpty()) {

                    packageNum = (String) list.get(i - l);
                    construction.setPackageNum(packageNum);
                }

            }


            String projectCom = (String) list.get(i + 1);
            construction.setProjectCom(projectCom);


            String projectName = (String) list.get(i + 2);
            construction.setProjectName(projectName);


            String projectAbs = (String) list.get(i + 3);
            construction.setProjectAbs(projectAbs);


            String eleLevel = (String) list.get(i + 4);
            construction.setEleLevel(eleLevel);


            String projectPlan = (String) list.get(i + 5);
            construction.setProjectPlan(projectPlan);


            String projectNature = (String) list.get(i + 6);
            construction.setProjectNature(projectNature);


            String projectScale = (String) list.get(i + 7);
            construction.setProjectScale(projectScale);


            String methods = (String) list.get(i + 8);
            construction.setMethods(methods);


            String limitPrice = (String) list.get(i + 9);
            construction.setLimitPrice(limitPrice);


            String technologyId = (String) list.get(i + 10);
            construction.setTechnologyId(technologyId);


            String biddingFee = (String) list.get(i + 11);
            construction.setBiddingFee(biddingFee);


            String requestId = (String) list.get(i + 12);
            construction.setRequestId(requestId);


            elemapper.uploadWord(construction);
        }
    }

参考项目名elezip111

相关推荐
百事牛科技13 小时前
Excel的三种密码:防看、防存、防乱改,各管各的
windows·excel
用户2986985301417 小时前
React 前端将 Excel 工作表导出为图片的技术实践
javascript·react.js·excel
用户0332126663672 天前
使用 Python 在 Excel 文档中添加水印
python·excel
科技新资讯3 天前
AI如何批量处理Excel文件? 从数据合并、清洗到自动生成报表,看看 AI Agent 怎么完成任务
大数据·人工智能·excel
用户0332126663674 天前
使用 Python 在 Excel 中添加与删除筛选器
python·excel
xurime4 天前
Excelize 开源基础库发布 2.11.1 版本更新
数据分析·excel·开源软件·excelize·gitcode
梦想出海-Phoebe4 天前
Gemini新增文件编辑功能:PDF、Word、Excel处理体验分享
pdf·word·excel
Data-Miner5 天前
AI和Excel怎么结合才能真提效
人工智能·excel
taller_20005 天前
【012】数据类型入门: Excel 数据到 Python 值的转换
python·excel·pie·py
彦8 天前
Excel实用技巧笔记
excel