Java tutorial
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.any23.plugin.officescraper; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.InputStream; /** * General test to verify usability of the {@link XSSFWorkbook} class. * * @author Michele Mostarda (mostarda@fbk.eu) */ public class XSSFWorkbookTest { private static final Logger logger = LoggerFactory.getLogger(XSSFWorkbookTest.class); @Test public void testXLSXFormatAccess() throws IOException { verifyResource("test1-workbook.xlsx"); } @Test public void testXLSFormatAccess() throws IOException { verifyResource("test2-workbook.xls"); } private void verifyResource(String resource) throws IOException { final InputStream document = this.getClass().getResourceAsStream(resource); final Workbook wb; if (resource.endsWith(".xlsx")) { wb = new XSSFWorkbook(document); } else if (resource.endsWith("xls")) { wb = new HSSFWorkbook(document); } else { throw new IllegalArgumentException("Unsupported extension for resource " + resource); } Assert.assertEquals(2, wb.getNumberOfSheets()); Sheet sheet; for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) { sheet = wb.getSheetAt(sheetIndex); int rowcount = 0; for (Row row : sheet) { rowcount++; int cellcount = 0; for (Cell cell : row) { cellcount++; logger.debug(String.format("cell [%d, %d]: %s", cell.getRowIndex(), cell.getColumnIndex(), cell.getStringCellValue())); verifyContent(sheetIndex, cell.getRowIndex(), cell.getColumnIndex(), cell.getStringCellValue()); } Assert.assertEquals(3, cellcount); } Assert.assertEquals(3, rowcount); } } private void verifyContent(int sheet, int row, int col, String content) { Assert.assertEquals(String.format("%s %d.%d", sheet == 0 ? "a" : "b", row + 1, col + 1), content); } }