• java-读写excel word


    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.sy.parse</groupId>
        <artifactId>parse-word</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <packaging>jar</packaging>
    
        <name>parse-word</name>
        <url>http://www.example.com</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>3.17</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>3.17</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml-schemas</artifactId>
                <version>3.17</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad -->
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-scratchpad</artifactId>
                <version>3.17</version>
            </dependency>
    
        </dependencies>
    
        <build>
            <finalName>parse-word</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <!-- JAR Maven 管理-->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.1.0</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <!-- 配置主程序 java -jar 默认Class -->
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                                <!--Main程序入口-->
                                <mainClass>com.sy.parse.App</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
                <!-- maven 打包集成插件 -->
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <descriptorRefs>
                            <!-- 将依赖一起打包到 JAR -->
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <archive>
                            <manifest>
                                <!-- 配置主程序 java -jar 默认Class -->
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                                <!--Main程序入口-->
                                <mainClass>com.sy.parse.App</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>
    package com.sy.parse;
    
    import com.sy.parse.utils.ReadExcel;
    import com.sy.parse.utils.ReadWord;
    
    import java.util.Arrays;
    import java.util.List;
    
    /**
     * 读excel word 存入文本中
     *
     * @author Alice on 2021-08-20
     */
    public class App {
        public static void main(String[] args) throws Exception {
            //step1.读取excel
            List<String> excelName = Arrays.asList("1");
            for (int i = 0; i < excelName.size(); i++) {
                String fileName = excelName.get(i);
                String path = "/excel/" + fileName + ".xls";
                ReadExcel.readExcel(path, fileName);
            }
    
            //step2.读取word
            List<String> wordName = Arrays.asList("a", "b");
            for (int i = 0; i < wordName.size(); i++) {
                String fileName = wordName.get(i);
                String path = "/word/" + fileName + ".doc";
                ReadWord.readWord(path, fileName);
            }
    
        }
    }
    package com.sy.parse.utils;
    
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    import java.io.InputStream;
    
    /**
     * 读excel
     *
     * @author Alice on 2021-08-20
     */
    public class ReadExcel {
        public static final String LINE = System.getProperty("line.separator");
    
        public static void readExcel(String path, String fileName) throws Exception {
            String filePath = ReadExcel.class.getResource(path).getPath();
            System.out.println("================");
            System.out.println(filePath);
            if (filePath.endsWith(".xls")) {
                //InputStream is = new FileInputStream(new File(filePath));
                InputStream is = ReadExcel.class.getResourceAsStream(path);
                HSSFWorkbook sheets = new HSSFWorkbook(is);
                int sheetSize = sheets.getNumberOfSheets();
                String content = "";
                for (int i = 0; i < sheetSize; i++) {
                    HSSFSheet sheet = sheets.getSheetAt(i);
                    //int rows = sheet.getPhysicalNumberOfRows();
                    int rows = sheet.getLastRowNum();
                    for (int j = 0; j <= rows; j++) {
                        HSSFRow row = sheet.getRow(j);
                        if (row != null) {
                            int cells = row.getLastCellNum();
                            String con = "";
                            for (int k = 0; k <= cells; k++) {
                                if (row.getCell(k) != null) {
                                    String cell = row.getCell(k).toString();
                                    con += cell + "  ";
                                }
                            }
                            System.out.println(con);
                            content += con + LINE;
                        }
                    }
                }
                WriteFile.writeFile(fileName, content);
                sheets.close();
            } else if (filePath.endsWith(".xlsx")) {
                //InputStream is = new FileInputStream(new File(filePath));
                InputStream is = ReadExcel.class.getResourceAsStream(path);
                XSSFWorkbook sheets = new XSSFWorkbook(is);
                int sheetSize = sheets.getNumberOfSheets();
                String content = "";
                for (int i = 0; i < sheetSize; i++) {
                    XSSFSheet sheet = sheets.getSheetAt(i);
                    int rows = sheet.getLastRowNum();
                    for (int j = 0; j <= rows; j++) {
                        XSSFRow row = sheet.getRow(j);
                        if (row != null) {
                            int cells = row.getLastCellNum();
                            String con = "";
                            for (int k = 0; k <= cells; k++) {
                                if (row.getCell(k) != null) {
                                    String cell = row.getCell(k).toString();
                                    con += cell + "  ";
                                }
                            }
                            System.out.println(con);
                            content += con + LINE;
                        }
                    }
                }
                WriteFile.writeFile(fileName, content);
                sheets.close();
            } else {
                System.out.println("此文件不是excel文件.");
            }
        }
    
    }
    package com.sy.parse.utils;
    
    import org.apache.poi.POIXMLDocument;
    import org.apache.poi.POIXMLTextExtractor;
    import org.apache.poi.hwpf.extractor.WordExtractor;
    import org.apache.poi.openxml4j.opc.OPCPackage;
    import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
    
    import java.io.InputStream;
    
    /**
     * 读word
     *
     * @author Alice on 2021-08-20
     */
    public class ReadWord {
    
        public static void readWord(String path, String fileName) throws Exception {
            String filePath = ReadWord.class.getResource(path).getPath();
            String result = "";
            if (filePath.endsWith(".doc")) {
                //InputStream is = new FileInputStream(new File(filePath));
                InputStream is = ReadExcel.class.getResourceAsStream(path);
                WordExtractor re = new WordExtractor(is);
                result = re.getText();
                re.close();
            } else if (filePath.endsWith(".docx")) {
                OPCPackage opcPackage = POIXMLDocument.openPackage(filePath);
                POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
                result = extractor.getText();
                extractor.close();
            } else {
                System.out.println("此文件不是word文件.");
            }
    
            System.out.println("============================");
            System.out.println(result);
            WriteFile.writeFile(fileName, result);
        }
    
    }
    package com.sy.parse.utils;
    
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    
    public class WriteFile {
    
        public static void writeFile(String fileName, String content) throws Exception {
            String fileDir = "/home/bj-word/";
            File file = new File(fileDir);
            if (!file.exists() && !file.isDirectory()) {
                file.mkdirs();
            }
    
            String storeFilePath = fileDir + fileName + ".txt";
            bufferedWrite(storeFilePath, content);
        }
    
        public static void fileWrite(String path, String content) throws Exception {
            try (FileWriter fw = new FileWriter(path)) {
                fw.append(content);
            }
        }
    
        public static void bufferedWrite(String path, String content) throws Exception {
            try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(path))) {
                bufferedWriter.write(content);
            }
        }
    }
  • 相关阅读:
    好久没来园子里转了,最近在学ssh,有个小问题提出来
    ClearType使用的问题
    Metro中访问特定设备的方法
    UMDF驱动程序快速上手
    关于GPS使用上的一个怪异问题
    一个不能创建WINCE6.0工程的问题
    Metro开发小记
    在WINPE中添加驱动
    DOS命令活用
    METRO开发中的多语言处理
  • 原文地址:https://www.cnblogs.com/alice-bj/p/15175656.html
Copyright © 2020-2023  润新知