List of usage examples for org.apache.poi.hssf.usermodel HSSFWorkbook getSheetAt
@Override public HSSFSheet getSheetAt(int index)
From source file:edu.ku.brc.specify.utilapps.BuildSampleDatabase.java
License:Open Source License
/** * @param treeDef/*www .j a v a 2 s . co m*/ * @return */ public Geography convertGeographyFromXLS(final GeographyTreeDef treeDef) { frame.setDesc("Building Geography Tree..."); Hashtable<String, Geography> geoHash = new Hashtable<String, Geography>(); geoHash.clear(); String fileName = "Geography.xls"; File file = XMLHelper.getConfigDir("../demo_files/" + fileName); if (!file.exists()) { log.error("Couldn't file[" + file.getAbsolutePath() + "] checking the config dir"); file = XMLHelper.getConfigDir(fileName); if (!file.exists()) { file = new File("Specify/demo_files/" + fileName); } } if (file == null || !file.exists()) { log.error("Couldn't file[" + file.getAbsolutePath() + "]"); return null; } // setup the root Geography record (planet Earth) Geography earth = new Geography(); earth.initialize(); earth.setName(getResourceString("Earth")); earth.setFullName(earth.getName()); earth.setNodeNumber(1); earth.setHighestChildNodeNumber(1); earth.setRankId(0); earth.setDefinition(treeDef); GeographyTreeDefItem defItem = treeDef.getDefItemByRank(0); earth.setDefinitionItem(defItem); int counter = 0; try { startTx(); persist(earth); String[] cells = new String[4]; InputStream input = new FileInputStream(file); POIFSFileSystem fs = new POIFSFileSystem(input); HSSFWorkbook workBook = new HSSFWorkbook(fs); HSSFSheet sheet = workBook.getSheetAt(0); Iterator<?> rows = sheet.rowIterator(); int lastRowNum = sheet.getLastRowNum(); if (frame != null) { final int mx = lastRowNum; SwingUtilities.invokeLater(new Runnable() { public void run() { frame.setProcess(0, mx); } }); } while (rows.hasNext()) { if (counter == 0) { counter = 1; rows.next(); continue; } if (counter % 100 == 0) { if (frame != null) frame.setProcess(counter); log.info("Converted " + counter + " Geography records"); } HSSFRow row = (HSSFRow) rows.next(); Iterator<?> cellsIter = row.cellIterator(); int i = 0; while (cellsIter.hasNext() && i < 4) { HSSFCell cell = (HSSFCell) cellsIter.next(); if (cell != null) { cells[i] = StringUtils.trim(cell.getRichStringCellValue().getString()); i++; } } // Sets nulls to unused cells for (int j = i; j < 4; j++) { cells[j] = null; } //System.out.println(); @SuppressWarnings("unused") Geography newGeo = convertGeographyRecord(cells[0], cells[1], cells[2], cells[3], earth); counter++; } } catch (Exception ex) { ex.printStackTrace(); } if (frame != null) frame.setProcess(counter); log.info("Converted " + counter + " Geography records"); frame.setDesc("Saving Geography Tree..."); frame.getProcessProgress().setIndeterminate(true); TreeHelper.fixFullnameForNodeAndDescendants(earth); earth.setNodeNumber(1); fixNodeNumbersFromRoot(earth); commitTx(); /*startTx(); TreeHelper.fixFullnameForNodeAndDescendants(earth); earth.setNodeNumber(1); fixNodeNumbersFromRoot(earth); printTree(earth, 0); saveTree(earth); commitTx();*/ log.info("Converted " + counter + " Stratigraphy records"); // set up Geography foreign key mapping for locality geoHash.clear(); return earth; }
From source file:edu.ku.brc.specify.utilapps.BuildSampleDatabase.java
License:Open Source License
/** * @param fileName// ww w . j a va2s . com * @return */ public HashSet<String> getColumnNamesFromXLS(final String fileName, final boolean doUserProvidedFile) { File file = TaxonLoadSetupPanel.getFileForTaxon(fileName, doUserProvidedFile); if (file == null) { return null; } HashSet<String> nameHash = new HashSet<String>(); try { String[] cells = new String[35]; InputStream input = new FileInputStream(file); POIFSFileSystem fs = new POIFSFileSystem(input); HSSFWorkbook workBook = new HSSFWorkbook(fs); HSSFSheet sheet = workBook.getSheetAt(0); Iterator<?> rows = sheet.rowIterator(); rows = sheet.rowIterator(); if (rows.hasNext()) { for (int i = 0; i < cells.length; i++) { cells[i] = null; } HSSFRow row = (HSSFRow) rows.next(); Iterator<?> cellsIter = row.cellIterator(); while (cellsIter.hasNext()) { HSSFCell cell = (HSSFCell) cellsIter.next(); if (cell != null) { nameHash.add(StringUtils.trim(cell.getRichStringCellValue().getString())); } } } } catch (Exception ex) { ex.printStackTrace(); } return nameHash; }
From source file:edu.ku.brc.specify.utilapps.BuildSampleDatabase.java
License:Open Source License
/** * @param treeDef/* w w w . j ava2s . co m*/ * @param fileName * @param doUserProvidedFile * @return */ public Taxon convertTaxonFromXLS(final TaxonTreeDef treeDef, final String fileName, final boolean doUserProvidedFile) { Hashtable<String, Taxon> taxonHash = new Hashtable<String, Taxon>(); taxonHash.clear(); File file = TaxonLoadSetupPanel.getFileForTaxon(fileName, doUserProvidedFile); if (file == null) { return null; } Vector<TaxonTreeDefItem> rankedItems = new Vector<TaxonTreeDefItem>(); Hashtable<String, Boolean> colNames = new Hashtable<String, Boolean>(); for (TaxonTreeDefItem item : treeDef.getTreeDefItems()) { colNames.put(item.getName().toLowerCase(), true); rankedItems.add(item); } Collections.sort(rankedItems, new Comparator<TaxonTreeDefItem>() { @Override public int compare(TaxonTreeDefItem o1, TaxonTreeDefItem o2) { return o1.getRankId().compareTo(o2.getRankId()); } }); Connection conn = null; Statement stmt = null; TaxonTreeDefItem rootTreeDefItem = rankedItems.get(0); Set<Taxon> rootKids = rootTreeDefItem.getTreeEntries(); Taxon root = rootKids.iterator().next(); Vector<Pair<String, Integer>> nodeList = new Vector<Pair<String, Integer>>(); Pair<String, Integer> rootNode = new Pair<String, Integer>(root.getName(), root.getId()); nodeList.add(rootNode); int counter = 0; int numDataCols = 0; try { startTx(); for (TaxonTreeDefItem item : treeDef.getTreeDefItems()) { persist(item); } persist(root); commitTx(); String[] cells = new String[35]; String[] header = new String[35]; InputStream input = new FileInputStream(file); POIFSFileSystem fs = new POIFSFileSystem(input); HSSFWorkbook workBook = new HSSFWorkbook(fs); HSSFSheet sheet = workBook.getSheetAt(0); Iterator<?> rows = sheet.rowIterator(); int lastRowNum = sheet.getLastRowNum(); if (frame != null) { final int mx = lastRowNum; SwingUtilities.invokeLater(new Runnable() { public void run() { frame.setProcess(0, mx); } }); } conn = DBConnection.getInstance().createConnection(); //conn.setAutoCommit(false); stmt = conn.createStatement(); rows = sheet.rowIterator(); while (rows.hasNext()) { for (int i = 0; i < cells.length; i++) { cells[i] = null; } if (counter == 0) { HSSFRow row = (HSSFRow) rows.next(); Iterator<?> cellsIter = row.cellIterator(); int i = 0; while (cellsIter.hasNext()) { HSSFCell cell = (HSSFCell) cellsIter.next(); if (cell != null) { cells[i] = getXLSCellValueAsStr(cell); header[i] = cells[i]; i++; } } for (i = 0; i < cells.length; i++) { if (cells[i] == null) break; if (colNames.get(cells[i].toLowerCase()) != null) { numDataCols = i + 1; } else { for (String key : colNames.keySet()) { System.err.println("key[" + key + "]"); } System.err.println("Not Found: [" + cells[i].toLowerCase() + "]"); break; } } loadIndexes(cells); counter = 1; for (String hdr : header) { if (hdr == null) break; int inx = 0; for (TaxonTreeDefItem item : rankedItems) { if (hdr.equalsIgnoreCase(item.getName())) { log.debug("Header: " + hdr + " -> " + inx); taxonIndexes.put(hdr, inx); item.setIsInFullName(item.getRankId() >= TaxonTreeDef.GENUS); } else { log.debug("Header: " + hdr + " -> skipped."); } inx++; } } continue; } if (counter % 100 == 0) { if (frame != null) frame.setProcess(counter); //log.info("Converted " + counter + " of "+lastRowNum+" Taxon records"); } HSSFRow row = (HSSFRow) rows.next(); Iterator<?> cellsIter = row.cellIterator(); int i = 0; while (cellsIter.hasNext() && i < cells.length) { HSSFCell cell = (HSSFCell) cellsIter.next(); if (cell != null) { cells[i] = getXLSCellValueAsStr(cell); i++; } } convertTaxonNodes(conn, stmt, header, cells, numDataCols, rootNode, nodeList, rankedItems, root.getDefinition().getId()); counter++; } stmt.executeUpdate( "UPDATE taxon SET IsAccepted = true WHERE IsAccepted IS NULL and AcceptedID IS NULL AND TaxonTReeDefID = " + treeDef.getId()); // Clear all GUIDs in Taxon. stmt.executeUpdate("UPDATE taxon SET GUID = NULL WHERE TaxonTreeDefID = " + treeDef.getId()); conn.close(); input.close(); if (frame != null) frame.setProcess(lastRowNum); root = (Taxon) session.createQuery("FROM Taxon WHERE id = " + root.getId()).list().get(0); } catch (Exception ex) { ex.printStackTrace(); edu.ku.brc.af.core.UsageTracker.incrHandledUsageCount(); edu.ku.brc.exceptions.ExceptionTracker.getInstance().capture(BackupServiceFactory.class, ex); } finally { try { if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (Exception ex) { ex.printStackTrace(); } } if (frame != null) { frame.setDesc("Saving Taxon Tree..."); frame.getProcessProgress().setIndeterminate(true); } NodeNumberer<Taxon, TaxonTreeDef, TaxonTreeDefItem> nodeNumberer = new NodeNumberer<Taxon, TaxonTreeDef, TaxonTreeDefItem>( root.getDefinition()); nodeNumberer.doInBackground(); //startTx(); //TreeHelper.fixFullnameForNodeAndDescendants(root); //root.setNodeNumber(1); //fixNodeNumbersFromRoot(root); //commitTx(); log.info("Converted " + counter + " Taxon records"); // set up Taxon foreign key mapping for locality taxonHash.clear(); return root; }
From source file:edu.ku.brc.specify.utilapps.BuildSampleDatabase.java
License:Open Source License
/** * @param treeDef/*from w w w. ja v a 2s . c o m*/ * @return */ public GeologicTimePeriod convertChronoStratFromXLS(final GeologicTimePeriodTreeDef treeDef, final Agent userAgent) { startTx(); GeologicTimePeriodTreeDefItem root = createGeologicTimePeriodTreeDefItem(null, treeDef, "Root", 0); GeologicTimePeriodTreeDefItem era = createGeologicTimePeriodTreeDefItem(root, treeDef, "Erathem/Era", 100); GeologicTimePeriodTreeDefItem period = createGeologicTimePeriodTreeDefItem(era, treeDef, "System/Period", 200); GeologicTimePeriodTreeDefItem series = createGeologicTimePeriodTreeDefItem(period, treeDef, "Series/Epoch", 300); @SuppressWarnings("unused") GeologicTimePeriodTreeDefItem member = createGeologicTimePeriodTreeDefItem(series, treeDef, "Stage/Age", 400); persist(root); commitTx(); series.setIsInFullName(true); frame.setDesc("Building ChronoStratigraphy Tree..."); Hashtable<String, GeologicTimePeriod> chronoHash = new Hashtable<String, GeologicTimePeriod>(); chronoHash.clear(); String fileName = "chronostrat_tree.xls"; File file = XMLHelper.getConfigDir("../demo_files/" + fileName); if (!file.exists()) { log.error("Couldn't file[" + file.getAbsolutePath() + "] checking the config dir"); file = XMLHelper.getConfigDir(fileName); if (!file.exists()) { file = new File("Specify/demo_files/" + fileName); } } if (file == null || !file.exists()) { log.error("Couldn't file[" + file.getAbsolutePath() + "]"); return null; } // setup the root ChronoStrat record (planet Earth) GeologicTimePeriod rootNode = new GeologicTimePeriod(); rootNode.initialize(); rootNode.setName(getResourceString("Root")); rootNode.setFullName(rootNode.getName()); rootNode.setRankId(0); rootNode.setDefinition(treeDef); rootNode.setDefinitionItem(root); rootNode.setCreatedByAgent(userAgent); int counter = 0; try { startTx(); persist(rootNode); String[] cells = new String[4]; InputStream input = new FileInputStream(file); POIFSFileSystem fs = new POIFSFileSystem(input); HSSFWorkbook workBook = new HSSFWorkbook(fs); HSSFSheet sheet = workBook.getSheetAt(0); Iterator<?> rows = sheet.rowIterator(); int lastRowNum = sheet.getLastRowNum(); if (frame != null) { final int mx = lastRowNum; SwingUtilities.invokeLater(new Runnable() { public void run() { frame.setProcess(0, mx); } }); } while (rows.hasNext()) { if (counter == 0) { counter = 1; continue; } if (counter % 100 == 0) { if (frame != null) frame.setProcess(counter); log.info("Converted " + counter + " ChronoStrat records"); } HSSFRow row = (HSSFRow) rows.next(); Iterator<?> cellsIter = row.cellIterator(); int i = 0; while (cellsIter.hasNext() && i < 4) { HSSFCell cell = (HSSFCell) cellsIter.next(); if (cell != null) { cells[i] = StringUtils.trim(cell.getRichStringCellValue().getString()); i++; } } for (int j = i; j < 4; j++) { cells[j] = null; } //System.out.println(); @SuppressWarnings("unused") GeologicTimePeriod newGeo = convertChronoStratRecord(cells[0], cells[1], cells[2], cells[3], rootNode, userAgent); counter++; } input.close(); } catch (Exception ex) { ex.printStackTrace(); } if (frame != null) frame.setProcess(counter); log.info("Converted " + counter + " ChronoStrat records"); TreeHelper.fixFullnameForNodeAndDescendants(rootNode); rootNode.setNodeNumber(1); fixNodeNumbersFromRoot(rootNode); commitTx(); log.info("Converted " + counter + " Stratigraphy records"); // set up ChronoStrat foreign key mapping for locality chronoHash.clear(); return rootNode; }
From source file:edu.rice.rems.Scheduler.java
License:Open Source License
/** * Extract shift schedule data from excel file * * @param xlsFile/*from w ww. jav a 2s . c om*/ * @return data */ private static ArrayList<ArrayList<String>> extractData(File xlsFile) { ArrayList<ArrayList<String>> data = new ArrayList<>(); try { FileInputStream file = new FileInputStream(xlsFile); HSSFWorkbook workbook = new HSSFWorkbook(file); HSSFSheet sheet = workbook.getSheetAt(0); //Iterate through each rows from first sheet Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); ArrayList<String> newRow = new ArrayList<String>(); //For each row, iterate through each columns Iterator<Cell> cellIterator = row.cellIterator(); while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); newRow.add(cell.getStringCellValue()); } data.add(newRow); } file.close(); } catch (Exception e) { e.printStackTrace(); return null; } return data; }
From source file:edu.tum.cs.conqat.quamoco.ExcelUtils.java
License:Apache License
/** * Read Excel sheet. Returns first sheet in the file. * /*ww w.j a va2 s .c o m*/ * @throws ConQATException * if file cannot be read */ public static HSSFSheet readFirstSheet(File file) throws ConQATException { try { InputStream myxls = new FileInputStream(file); HSSFWorkbook workbook = new HSSFWorkbook(myxls); return workbook.getSheetAt(0); } catch (IOException e) { throw new ConQATException("Could not read Excel file: " + e.getMessage(), e); } }
From source file:edu.ucsd.bioeng.coreplugin.tableImport.tests.ExcelAttributeSheetReaderTest.java
License:Open Source License
/** * DOCUMENT ME!/* w ww . j a v a 2 s.c o m*/ * * @throws Exception DOCUMENT ME! */ public void testReadTable() throws Exception { /* * Load test network */ CyNetwork net = Cytoscape.createNetworkFromURL(getClass().getResource(NETWORK_FILE), true); /* * Single Sheet Test */ InputStream is = null; POIFSFileSystem excelIn; try { is = getClass().getResource(WORKBOOK1).openStream(); excelIn = new POIFSFileSystem(is); } finally { if (is != null) { is.close(); } } HSSFWorkbook wb = new HSSFWorkbook(excelIn); HSSFSheet sheet = wb.getSheetAt(0); List<String> delimiters = new ArrayList<String>(); delimiters.add(TextFileDelimiters.TAB.toString()); List<Integer> aliasList = new ArrayList<Integer>(); aliasList.add(2); String[] galAttrName = { "ID", "ID in SGD", "Synonyms", "Description of Genes", "Date", "Sample Boolean Attr2", "gal1RGexp", "gal1RGsig", "String List" }; Byte[] galAttrTypes = { CyAttributes.TYPE_STRING, CyAttributes.TYPE_STRING, CyAttributes.TYPE_STRING, CyAttributes.TYPE_STRING, CyAttributes.TYPE_INTEGER, CyAttributes.TYPE_BOOLEAN, CyAttributes.TYPE_FLOATING, CyAttributes.TYPE_FLOATING, CyAttributes.TYPE_SIMPLE_LIST }; for (int i = 0; i < galAttrTypes.length; i++) { System.out.println("GAL Data Type " + i + " = " + galAttrTypes[i]); } AttributeMappingParameters mapping = new AttributeMappingParameters(TextTableReader.ObjectType.NODE, null, COMMA.toString(), 0, "ID", aliasList, galAttrName, galAttrTypes, null, null); TextTableReader rd = new ExcelAttributeSheetReader(sheet, mapping, 0); rd.readTable(); assertEquals("ribosomal protein S28A (S33A) (YS27)", Cytoscape.getNodeAttributes().getStringAttribute("YOR167C", "Description of Genes")); assertEquals(new Integer(20010118), Cytoscape.getNodeAttributes().getIntegerAttribute("YHR141C", "Date")); //assertEquals(4, Cytoscape.getNodeAttributes().getListAttribute("YER112W", "alias").size()); /* * Multiple sheet test (not yet supported) */ Cytoscape.destroyNetwork(net); }
From source file:edu.ucsd.bioeng.coreplugin.tableImport.tests.ExcelNetworkSheetReaderTest.java
License:Open Source License
/** * DOCUMENT ME!/*from w ww. j a v a 2s . com*/ * * @throws Exception DOCUMENT ME! */ public void testReadTable() throws Exception { InputStream is = null; POIFSFileSystem excelIn; try { is = getClass().getResource(NETWORK_FILE).openStream(); excelIn = new POIFSFileSystem(is); } finally { if (is != null) { is.close(); } } HSSFWorkbook wb = new HSSFWorkbook(excelIn); HSSFSheet sheet = wb.getSheetAt(0); List<String> delimiters = new ArrayList<String>(); delimiters.add(TextFileDelimiters.TAB.toString()); String[] galAttrName = { "Source", "Target", "Interaction", "edge bool attr", "edge string attr", "edge float attr" }; Byte[] galAttrTypes = { CyAttributes.TYPE_STRING, CyAttributes.TYPE_STRING, CyAttributes.TYPE_STRING, CyAttributes.TYPE_BOOLEAN, CyAttributes.TYPE_STRING, CyAttributes.TYPE_FLOATING }; NetworkTableMappingParameters mapping = new NetworkTableMappingParameters(delimiters, TextFileDelimiters.PIPE.toString(), galAttrName, galAttrTypes, null, null, 0, 1, 2, null); reader = new ExcelNetworkSheetReader(wb.getSheetName(0), sheet, mapping); CyNetwork net = Cytoscape.createNetwork(reader, false, null); /* * test cases */ assertEquals("Yeast Network Sheet 1", net.getTitle()); assertEquals(331, net.getNodeCount()); assertEquals(362, net.getEdgeCount()); CyAttributes attr = Cytoscape.getEdgeAttributes(); assertTrue(attr.getBooleanAttribute("YGL122C (pp) YOL123W", "edge bool attr")); assertFalse(attr.getBooleanAttribute("YKR026C (pp) YGL122C", "edge bool attr")); assertEquals(1.2344543, attr.getDoubleAttribute("YBL026W (pp) YOR167C", "edge float attr")); assertEquals("abcd12706", attr.getStringAttribute("YBL026W (pp) YOR167C", "edge string attr")); assertEquals("abcd12584", attr.getStringAttribute("YPL248C (pd) ?", "edge string attr")); Cytoscape.destroyNetwork(net); }
From source file:edu.ucsd.bioeng.coreplugin.tableImport.tests.ExcelNetworkSheetReaderTest.java
License:Open Source License
public void testReadTableWithEmptyRows() throws Exception { String network = "/empty_attr_row.xls"; InputStream is = null;/*from w w w . j a v a 2 s . c om*/ POIFSFileSystem excelIn; try { is = getClass().getResource(network).openStream(); excelIn = new POIFSFileSystem(is); } finally { if (is != null) { is.close(); } } HSSFWorkbook wb = new HSSFWorkbook(excelIn); HSSFSheet sheet = wb.getSheetAt(0); List<String> delimiters = new ArrayList<String>(); delimiters.add(TextFileDelimiters.TAB.toString()); String[] galAttrName = { "Gene 1", "Gene 2", "Interaction Type", "Gene", "GO Group" }; Byte[] galAttrTypes = { CyAttributes.TYPE_STRING, CyAttributes.TYPE_STRING, CyAttributes.TYPE_STRING, CyAttributes.TYPE_STRING, CyAttributes.TYPE_STRING }; NetworkTableMappingParameters mapping = new NetworkTableMappingParameters(delimiters, TextFileDelimiters.PIPE.toString(), galAttrName, galAttrTypes, null, null, 0, 1, 2, null); CyNetwork net = null; try { reader = new ExcelNetworkSheetReader(wb.getSheetName(0), sheet, mapping, 1); net = Cytoscape.createNetwork(reader, false, null); } catch (Exception ee) { ee.printStackTrace(); fail("Caught exception"); } assertEquals(222, net.getNodeCount()); assertEquals(443, net.getEdgeCount()); CyAttributes attr = Cytoscape.getEdgeAttributes(); // test some random edges assertEquals("cc", attr.getStringAttribute("YDR459C (cc) YNL271C", "interaction")); assertEquals("Transport", attr.getStringAttribute("YDR459C (cc) YNL271C", "GO Group")); assertEquals("YPR011C", attr.getStringAttribute("YDR459C (cc) YNL271C", "Gene")); assertNull(attr.getStringAttribute("YEL040W (cc) YER016W", "GO Group")); assertNull(attr.getStringAttribute("YEL040W (cc) YER016W", "Gene")); Cytoscape.destroyNetwork(net); }
From source file:edu.wustl.catissuecore.webservice.util.ExcelFileReader.java
License:BSD License
/** * Method to perform initialization tasks for the class * @throws IOException// ww w . j av a 2 s . c o m */ private void init() throws IOException { File excelSheet = new File(this.fileName); InputStream s = new FileInputStream(excelSheet); HSSFWorkbook workbook = new HSSFWorkbook(s); sheet = workbook.getSheetAt(0); }