首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用apache poi从excel创建guava hashmaptable

使用apache poi从excel创建guava hashmaptable
EN

Stack Overflow用户
提问于 2016-03-16 15:57:33
回答 1查看 355关注 0票数 0

使用apache poi从excel创建guava hashmaptable

我有一个Excel表格,它是这样构建的:

代码语言:javascript
复制
SiO2    pyrite    0

SiO2   siderite   57

SiO2   plag50     53

Al2O3  pyrite     0

Al2O3  siderite   32

etc…它们大约有400个条目。

现在,我想将这个带有Apache POI (XSSF)的Excel-sheet (2013)转换为一个芭乐hashmaptable<String, String, Integer>

代码语言:javascript
复制
Table <String, String, Integer> mins = HashBasedTable.create();
mins.put(“SiO2”, “siderite”, 57) 

等。

如何做到这一点?如何将这样的hashmaptable转换回excel工作表?提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2016-03-16 22:22:17

代码语言:javascript
复制
Table<String, String, Integer> table;
try (Workbook workbook = WorkbookFactory.create(new File("input.xlsx"))) {
    Sheet sheet = workbook.getSheet("SheetName");
    table = HashBasedTable.create(sheet.getPhysicalNumberOfRows(), 3);
    for (Row row : sheet) {
        String rowKey = row.getCell(0).getStringCellValue();
        String columnKey = row.getCell(1).getStringCellValue();
        int value = (int) row.getCell(2).getNumericCellValue();
        table.put(rowKey, columnKey, value);
    }
}
try (Workbook workbook = new XSSFWorkbook()) {
    Sheet sheet = workbook.createSheet("SheetName");
    int physicalNumberOfRows = 0;
    for (Table.Cell<String, String, Integer> cell : table.cellSet()) {
        Row row = sheet.createRow(physicalNumberOfRows++);
        row.createCell(0).setCellValue(cell.getRowKey());
        row.createCell(1).setCellValue(cell.getColumnKey());
        row.createCell(2).setCellValue(Objects.requireNonNull(cell.getValue()));
    }
    try (OutputStream outputStream = new FileOutputStream("output.xlsx")) {
        workbook.write(outputStream);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36029759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档