java操作excel、word

一、用到的代码:

源码工程在这里:https://download.csdn.net/download/pp814274513/86771971

配合使用的de工具在这里:excel宏编程工具合并多个excel文件合并多个sheet

import javafx.scene.control.Cell;
import jxl.Sheet;
import jxl.Workbook;

import java.io.File;


/**
 * 简单的操作
 */
public class Excel2 {
    public static void main(String[] args) throws Exception {
        ReadExcel("");
    }

    private static void ReadExcel(String url) throws Exception {
        // 指定文件夹路径
        File dir = new File("F:\\myWorkFiles\\xxx\\2022年10月8日,导入数据\\数据\\临时\\dddd - 副本");
        // 获取该路径下所有excel文件
        File[] files = dir.listFiles();
        for (File file : files) {
            // 注意调过这些字符打头的文件
            if (file.getPath().toString().contains("$")) {
                continue;
            }
            //1:创建workbook
            Workbook workbook = Workbook.getWorkbook(file);
            //2:获取第一个工作表sheet,下标从0开始表示第一个工作表
            Sheet sheet = workbook.getSheet(0);
            //3:获取数据
            String s = "";
            // 遍历每一行数据
            for (int i = 0; i < sheet.getRows(); i++) {
                // 遍历每一列数据
                for (int j = 0; j < sheet.getColumns(); j++) {
                    // 获取单元格,这里注意j i的顺序不要颠倒
                    Cell cell = (Cell) sheet.getCell(j, i);
                    s += cell.getText() + "####";
                }
            }
            System.out.println(s);
            //4:关闭资源
            workbook.close();

        }
    }

}
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ExcelConsoleFile {
    public static void main(String[] args) throws Exception {
        ReadExcel("");
    }

    private static void ReadExcel(String url) throws Exception {
        // 注意这里,由于输出到控制台数据太多,展示不全,所以输出到文件
        String path2222 = "F:\\myWorkFiles\\XXXXXXX\\2022年10月8日,导入数据\\数据\\临时\\111.txt";
        FileOutputStream puts = new FileOutputStream(path2222, true);
        PrintStream out = new PrintStream(puts);
        System.setOut(out);

        File dir = new File("F:\\myWorkFiles\\XXXXXXX\\2022年10月8日,导入数据\\数据\\临时\\物业机房整理半截快好了的");
        // 获取到所有服务单位文件夹
        File[] serviceCompanys = dir.listFiles();
        for (File serviceCompany : serviceCompanys) {
            String[] fwzxs = serviceCompany.getPath().split("\\\\");
            String fwzx = fwzxs[fwzxs.length - 1];
//            System.out.println("服务中心【:"+fwzx+"【");
            // 服务单位下的文件
            File[] files = new File(serviceCompany.getPath()).listFiles();
            for (File file : files) {
                if (file.getPath().contains("$") || !file.getPath().contains("物业机房统计表") || !file.getPath().toString().endsWith("xls")) {
                    continue;
                }
                // 获取物业机房文件
                Workbook workbook = Workbook.getWorkbook(file);
                String id = "";
                Sheet aaa = workbook.getSheet(2);
                for (int i = 1; i < aaa.getRows() - 1; i++) {
                    Cell[] cells = aaa.getRow(i);
                    // 替换所有回车、空白
                    Pattern p = Pattern.compile("\\s*|\t|\r|\n");
                    if (cells.length == 0) {
                        continue;
                    }
                    if (cells[0].getContents().split("]").length != 2) {
                        continue;
                    }
                    Matcher m = p.matcher(cells[0].getContents().split("]")[1]);
                    id = "shebei" + fwzx + i + System.currentTimeMillis();
                    // 分类
                    String smallType = m.replaceAll("").replaceAll("B1、B2", "地下");
                    // 名称
                    Matcher n =
                            p.matcher(cells[2].getContents() + "," + cells[3].getContents() + "," + cells[4].getContents() + "," + cells[5].getContents());
                    String name = n.replaceAll("");
                    // 位置
                    String location =
                            "楼号:" + cells[2].getContents() + ",层数:" + cells[3].getContents() + ",位置:" + cells[4].getContents() +
                                    "," + cells[5].getContents();
                    System.out.println("INSERT tab_resource ( id, company_id, resource_name, resource_location, " +
                            "small_type, create_time, del_flag )VALUES( '" + id + "', '" + fwzx + "', '" + name + "', '" + location + "', " +
                            "'" + smallType + "', NOW( ), 0 );");
                    // 获取责任人联系电话
                    Cell cell1 = (Cell) workbook.getSheet(0).getCell(3, 1);
                    Pattern p2 = Pattern.compile("\\s*|\t|\r|\n");
                    Matcher m2 = p2.matcher(cell1.getContents());
                    String dest =
                            m2.replaceAll("").replaceAll("负责人", "").replaceAll("电话", "").replaceAll("1:", "").replaceAll("2:"
                                    , "").replaceAll("3:", "");
                    List<String> zerenrens = PhoneNum.checkCellphone(dest);
                    for (int i2 = 0; i2 < zerenrens.size(); i2++) {
                        System.out.println("INSERT into tab_resource_people(id,resource_id,user_id,create_time,del_flag) " +
                                "VALUES (UUID(),'" + id + "','" + zerenrens.get(i2) + "',NOW(),0);");
                    }
                }
                workbook.close();
            }

        }
    }

}
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


/**
 * 从一堆字符里提取电话号码
 */
public class PhoneNum {

    public static void main(String[] args) {

//要提前号码的字符串

        String str = "n13977777777s18911111111你好15988888888hha0955-7777777sss0775-6678111";

//提取手机号码

        checkCellphone(str);

//提取固定电话号码

        checkTelephone(str);

    }

    /**
     * 查询符合的手机号码
     *
     * @param str
     * @return
     */

    public static List<String> checkCellphone(String str) {

// 将给定的正则表达式编译到模式中

        Pattern pattern = Pattern.compile("((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}");

// 创建匹配给定输入与此模式的匹配器。

        Matcher matcher = pattern.matcher(str);

//查找字符串中是否有符合的子字符串
        List<String> phoneGrop = new ArrayList<>();
        while (matcher.find()) {
            phoneGrop.add(matcher.group());
//查找到符合的即输出

//            System.out.println("查询到一个符合的手机号码:" + matcher.group());

        }
        return phoneGrop;

    }

    /**
     * 查询符合的固定电话
     *
     * @param str
     */

    public static void checkTelephone(String str) {

// 将给定的正则表达式编译到模式中

        Pattern pattern = Pattern.compile("(0\\d{2}-\\d{8}(-\\d{1,4})?)|(0\\d{3}-\\d{7,8}(-\\d{1,4})?)");

// 创建匹配给定输入与此模式的匹配器。

        Matcher matcher = pattern.matcher(str);

//查找字符串中是否有符合的子字符串

        while (matcher.find()) {

//查找到符合的即输出

            System.out.println("查询到一个符合的固定号码:" + matcher.group());

        }

    }
}
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class ReadExcelhuiyishizhegnligeshi {
    public static void main(String[] args) throws Exception {
        excel();
    }

    public static void excel() throws Exception {
        File dir = new File("F:\\myWorkFiles\\XXXXXXX\\2022年10月8日,导入数据\\数据\\临时\\会议室资源 - 整理数据格式\\最终");
        File[] files = dir.listFiles();
        for (File file : files) {
            if (!file.exists()) {
                throw new Exception("文件不存在!");
            }
            if(file.getPath().contains("$")){
                continue;
            }
            InputStream in = new FileInputStream(file);
            if(file.getPath().endsWith(".xlsx")){
                // 读取整个Excel
                XSSFWorkbook sheets = new XSSFWorkbook(in);
                // 获取第一个表单Sheet
                XSSFSheet sheetAt = sheets.getSheetAt(0);
                for (int i = 0; i < 503; i++) {
                    String id = "huiyishi"+i;
                    String bangongqu = sheetAt.getRow(i).getCell(0).getStringCellValue().replaceAll("\\s*", "");
                    sheetAt.getRow(i).getCell(1).setCellType(CellType.STRING);
                    String roomName = sheetAt.getRow(i).getCell(1).getStringCellValue().replaceAll("\\s*", "");
                    String location = sheetAt.getRow(i).getCell(2).getStringCellValue().replaceAll("\\s*", "");
                    String smallType = sheetAt.getRow(i).getCell(3).getStringCellValue().replaceAll("\\s*", "");
                    Object remark;
                    if(sheetAt.getRow(i).getCell(4)!= null){
                        if(sheetAt.getRow(i).getCell(4).getCellType().equals(CellType.NUMERIC)){
                            sheetAt.getRow(i).getCell(4).setCellType(CellType.NUMERIC);
                            remark = sheetAt.getRow(i).getCell(4).getNumericCellValue();
                        }else {
                            sheetAt.getRow(i).getCell(4).setCellType(CellType.STRING);
                            remark = sheetAt.getRow(i).getCell(4).getStringCellValue().replaceAll("\\s*", "");
                        }
                    }else{
                        remark = "";
                    }
                    String companyId= sheetAt.getRow(i).getCell(5).getStringCellValue().replaceAll("\\s*", "");
                    String baozhangdanwei = sheetAt.getRow(i).getCell(6).getStringCellValue().replaceAll("\\s*", "");
//                    System.out.println("huiyishi"+i+","+bangongqu+","+roomName+","+location+","+smallType+","+remark+","+companyId+
//                            ","+baozhangdanwei);


//                      System.out.println("INSERT INTO tab_resource (id,resource_name,big_type,small_type,office_area," +
//                            "resource_location,company_id,create_time)VALUES('"+id+"','"+roomName+"'," +
//                            "'1503605963402776502','"+smallType+"'," +
//                            "'"+bangongqu+"','"+location+"','"+companyId+"',now());");







                    String fuzerenName1 = sheetAt.getRow(i).getCell(7).getStringCellValue().replaceAll("\\s*", "");
                    sheetAt.getRow(i).getCell(8).setCellType(CellType.STRING);
                    String fuzerenphone1 = sheetAt.getRow(i).getCell(8).getStringCellValue().replaceAll("\\s*", "");
                    if(!"".equals(fuzerenName1)){
//                        System.out.println(fuzerenName1+","+fuzerenphone1);
                          System.out.println("INSERT INTO tab_resource_people ( id, resource_id, duty_type, user_id ) VALUES  ( uuid(), '"+id+"', 'zrdw100', '"+fuzerenphone1+"' );");
                    }
                    String fuzerenName2 = "",fuzerenphone2 = "";
                    if(sheetAt.getRow(i).getCell(9)!= null){
                        fuzerenName2 = sheetAt.getRow(i).getCell(9).getStringCellValue().replaceAll("\\s*", "");
                        sheetAt.getRow(i).getCell(10).setCellType(CellType.STRING);
                        fuzerenphone2 = sheetAt.getRow(i).getCell(10).getStringCellValue().replaceAll("\\s*", "");
                    }
                    if(!"".equals(fuzerenName2)){
//                        System.out.println(fuzerenName2+","+fuzerenphone2);
                          System.out.println("INSERT INTO tab_resource_people ( id, resource_id, duty_type, user_id ) VALUES  ( uuid(), '"+id+"', 'zrdw100', '"+fuzerenphone2+"' );");
                    }
                    String fuzerenName3 = "",fuzerenphone3 = "";
                    if(sheetAt.getRow(i).getCell(11)!= null){
                        fuzerenName3 = sheetAt.getRow(i).getCell(11).getStringCellValue().replaceAll("\\s*", "");
                        sheetAt.getRow(i).getCell(12).setCellType(CellType.STRING);
                        fuzerenphone3 = sheetAt.getRow(i).getCell(12).getStringCellValue().replaceAll("\\s*", "");

                    }
                    if(!"".equals(fuzerenName3)){
//                        System.out.println(fuzerenName3+","+fuzerenphone3);
                          System.out.println("INSERT INTO tab_resource_people ( id, resource_id, duty_type, user_id ) VALUES  ( uuid(), '"+id+"', 'zrdw100', '"+fuzerenphone3+"' );");
                    }
                    String fuzerenName4 = "",fuzerenphone4="";
                    if(sheetAt.getRow(i).getCell(13) != null){
                        fuzerenName4 = sheetAt.getRow(i).getCell(13).getStringCellValue().replaceAll("\\s*", "");
                        sheetAt.getRow(i).getCell(14).setCellType(CellType.STRING);
                        fuzerenphone4 = sheetAt.getRow(i).getCell(14).getStringCellValue().replaceAll("\\s*", "");

                    }
                    if(!"".equals(fuzerenName4)){
//                        System.out.println(fuzerenName4+","+fuzerenphone4);
                          System.out.println("INSERT INTO tab_resource_people ( id, resource_id, duty_type, user_id ) VALUES  ( uuid(), '"+id+"', 'zrdw100', '"+fuzerenphone4+"' );");
                    }
//                    System.out.println("=====================================");
                }
            }
        }
    }
}
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;


/**
 * 考虑到xls和xlsx兼容性的
 */
public class ReadExceljianrong {
    public static void main(String[] args) throws Exception {
        excel();
    }

    public static void excel() throws Exception {
        File dir = new File("F:\\myWorkFiles\\XXXXXXX\\2022年10月8日,导入数据\\数据\\临时\\会议室资源 - 副本");
        File[] files = dir.listFiles();
        for (File file : files) {
            if (!file.exists()) {
                throw new Exception("文件不存在!");
            }
            if(file.getPath().contains("$")){
                continue;
            }
            InputStream in = new FileInputStream(file);
            if(file.getPath().endsWith(".xlsx")){
                // 读取整个Excel
                XSSFWorkbook sheets = new XSSFWorkbook(in);
                // 获取第一个表单Sheet
                XSSFSheet sheetAt = sheets.getSheetAt(0);
                for (int i = 0; i < 503; i++) {
                    String baozhangdanwei = sheetAt.getRow(i).getCell(0).getStringCellValue().replaceAll("\\s*", "");
                    String bangongqu = sheetAt.getRow(i).getCell(1).getStringCellValue().replaceAll("\\s*", "");
                    sheetAt.getRow(i).getCell(2).setCellType(CellType.STRING);
                    String resName = sheetAt.getRow(i).getCell(2).getStringCellValue().replaceAll("\\s*", "");
                    String location = sheetAt.getRow(i).getCell(3).getStringCellValue().replaceAll("\\s*", "");
                    String smallType = sheetAt.getRow(i).getCell(4).getStringCellValue().replaceAll("\\s*", "");
                    Object remark;
                    if(sheetAt.getRow(i).getCell(5).getCellType().equals(CellType.NUMERIC)){
                        sheetAt.getRow(i).getCell(5).setCellType(CellType.NUMERIC);
                        remark = sheetAt.getRow(i).getCell(5).getNumericCellValue();

                    }else {
                        sheetAt.getRow(i).getCell(5).setCellType(CellType.STRING);
                        remark = sheetAt.getRow(i).getCell(5).getStringCellValue().replaceAll("\\s*", "");
                    }

                    String fuzerenName1 = sheetAt.getRow(i).getCell(6).getStringCellValue().replaceAll("\\s*", "");
                    sheetAt.getRow(i).getCell(7).setCellType(CellType.STRING);
                    String fuzerenphone1 = sheetAt.getRow(i).getCell(7).getStringCellValue().replaceAll("\\s*", "");
                    if(!"".equals(fuzerenName1)){
                        System.out.println(baozhangdanwei+"【"+bangongqu+"【"+resName+"【"+location+"【"+smallType+"【"+remark+"【"+fuzerenName1+"【"+fuzerenphone1);
                    }
                    String fuzerenName2 = sheetAt.getRow(i).getCell(8).getStringCellValue().replaceAll("\\s*", "");
                    sheetAt.getRow(i).getCell(9).setCellType(CellType.STRING);
                    String fuzerenphone2 = sheetAt.getRow(i).getCell(9).getStringCellValue().replaceAll("\\s*", "");
                    if(!"".equals(fuzerenName2)){
                        System.out.println(baozhangdanwei+"【"+bangongqu+"【"+resName+"【"+location+"【"+smallType+"【"+remark+"【"+fuzerenName2+"【"+fuzerenphone2);
                    }
                    String fuzerenName3 = sheetAt.getRow(i).getCell(10).getStringCellValue().replaceAll("\\s*", "");
                    sheetAt.getRow(i).getCell(11).setCellType(CellType.STRING);
                    String fuzerenphone3 = sheetAt.getRow(i).getCell(11).getStringCellValue().replaceAll("\\s*", "");
                    if(!"".equals(fuzerenName3)){
                        System.out.println(baozhangdanwei+"【"+bangongqu+"【"+resName+"【"+location+"【"+smallType+"【"+remark+"【"+fuzerenName3+"【"+fuzerenphone3);
                    }
                    String fuzerenName4 = sheetAt.getRow(i).getCell(12).getStringCellValue().replaceAll("\\s*", "");
                    sheetAt.getRow(i).getCell(13).setCellType(CellType.STRING);
                    String fuzerenphone4 = sheetAt.getRow(i).getCell(13).getStringCellValue().replaceAll("\\s*", "");
                    if(!"".equals(fuzerenName4)){
                        System.out.println(baozhangdanwei+"【"+bangongqu+"【"+resName+"【"+location+"【"+smallType+"【"+remark+"【"+fuzerenName4+"【"+fuzerenphone4);
                    }

                }
            }else{
                // 读取整个Excel
                HSSFWorkbook sheets = new HSSFWorkbook(in);
                // 获取第一个表单Sheet
                HSSFSheet sheetAt = sheets.getSheetAt(0);
                // 获取B23位置的填表单位
                String tianbiaodanwei = sheetAt.getRow(22).getCell(1).getStringCellValue().replaceAll("\\s*", "");
                // 获取D2位置的负责人
                String fuzeren =
                        sheetAt.getRow(1).getCell(3).getStringCellValue().replaceAll("\\s*", "");
                String[] fs = fuzeren.split("负责人");
                for (String f : fs) {
                    if("".equals(f)){continue;}
                    System.out.println("【"+tianbiaodanwei+"【"+f+"【");
                }

            }
        }
    }
}
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;

import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import java.util.List;


/**
 * 读取world中的表格
 */
public class Word {
    public static void main(String[] args) {
        testWord("");
    }

    public static void testWord(String filePath){
        try{
            File dir = new File("F:\\myWorkFiles\\XXXXXXX\\2022年10月8日,导入数据\\数据\\临时\\环境 - 副本");
            File[] files = dir.listFiles();
            for (File file : files) {
                if(file.getPath().toString().contains("$")){
                    continue;
                }
                FileInputStream in = new FileInputStream(file.getPath());
                //载入文档 如果是office2007  docx格式
                if(file.getPath().toLowerCase().endsWith("docx")){
                    //word 2007 图片不会被读取, 表格中的数据会被放在字符串的最后
                    //得到word文档的信息
                    XWPFDocument xwpf = new XWPFDocument(in);
                    //得到段落信息
//             List<XWPFParagraph> listParagraphs = xwpf.getParagraphs();
                    //得到word中的表格
                    Iterator<XWPFTable> it = xwpf.getTablesIterator();

                    while(it.hasNext()){
                        XWPFTable table = it.next();
                        List<XWPFTableRow> rows=table.getRows();
                        //读取每一行数据
                        for (int i = 1; i < rows.size(); i++) {
                            XWPFTableRow  row = rows.get(i);
                            //读取每一列数据
                            List<XWPFTableCell> cells = row.getTableCells();
                            String s = "";
                            for (int j = 0; j < cells.size(); j++) {
                                if(j ==1 || j== 4 || j == 5){
                                    XWPFTableCell cell=cells.get(j);
                                    s += cell.getText() + "#";
                                }
                            }
                            //输出当前的单元格的数据
                            System.out.println(s);
                        }
                    }
                }
            }
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值