Excel从csv文件导入以进行转换

时间:2019-01-31 17:21:44

标签: java excel apache import apache-poi

我无法使用Apache POI API。我试图导入一个excel,他们只选择某些行和单元格从导入中提取。我目前能够导入,但是我无法提取某些单元格。这是代码:

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;

import java.io.File;
import java.io.IOException;

public class ExcelReader {
    public static final String path = "C:/Users/xxxx/Documents/import testing.xlsx";

    public static void main(String[] args) throws IOException, InvalidFormatException {

        // Create a workbook with data from excel file
        Workbook workbook = WorkbookFactory.create(new File(path));

        // Save sheets from workbook
        Sheet sheet = workbook.getSheetAt(0);

        // Make sure the data is saved in string format using a data formatter
        DataFormatter dataFormatter = new DataFormatter();

        // Iterate through cells and columns, printing their content
        System.out.println("\n\nThe content of the excel file: " + path + "\n");
        String cellContent;
        for (Row row: sheet) {
            for(Cell cell: row) {
                cellContent = dataFormatter.formatCellValue(cell);
                if(cellContent == null || cellContent.trim().isEmpty()){
                    // Give the empty cells the content "empty", to make it easy to filter out later on
                    cellContent = "empty";
                }
                System.out.print(cellContent + "\t");
            }
            CellReference cellReference = new CellReference("A11");
            XSSFRow rowT = sheet.getRow(cellReference.getRow());
            if (rowT != null) {
                XSSFCell cell = rowT.getCell(cellReference.getCol());
            }
            System.out.println();

        }
        // Close the connection to the workbook
        workbook.close();
    }
}

2 个答案:

答案 0 :(得分:0)

更改工作簿向XSSFWorkbook和薄板到XSSFSheet似乎解决编译问题。

XSSFWorkbook workbook = new XSSFWorkbook(new File(path));

XSSFSheet sheet = workbook.getSheetAt(0);

答案 1 :(得分:0)

尝试此操作以获取“ A11”单元格

XSSFCell cell = sheet.getRow(10).getCell(0); // 10 = id of the 11th row, 0 = id of the 1st (A) column

XSSFCell cell = sheet.getRow(10).getCell(CellReference.convertColStringToIndex("A"));

为B12创建单元格引用

CellReference cr = new CellReference("B12");
row = mySheet.getRow(cr.getRow());
cell = row.getCell(cr.getCol());