2016-06-29 20 views
1

Es gibt eine einfache Möglichkeit zum Extrahieren von Daten, die ich denke, es nur als Text abrufen (mit toSting() Methode), aber ich möchte Daten nach angegebenen Spalte oder Zeile Name abrufen. Im Folgenden finden Sie einen Beispielcode, der einfach den Inhalt von MS Excel zusammen mit seinen Metadaten druckt (vermeiden Sie diesen Teil). Es verwendet tika-app-1.13.jar (wenn Sie diesen Code ausführen möchten diese Bibliothek hinzufügen)Ist es möglich, bestimmte Daten aus Excel-Tabelle (aus einer Spalte oder Zeile) mit Apache Tika in Java zu holen?

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

import org.apache.tika.exception.TikaException; 
import org.apache.tika.metadata.Metadata; 
import org.apache.tika.parser.ParseContext; 
import org.apache.tika.parser.microsoft.ooxml.OOXMLParser; 
import org.apache.tika.sax.BodyContentHandler; 

import org.xml.sax.SAXException; 

public class MSExcelParse { 

    public static void main(final String[] args) 
      throws IOException, TikaException, SAXException { 

     //detecting the file type 
     BodyContentHandler handler = new BodyContentHandler(); 
     Metadata metadata = new Metadata(); 
     FileInputStream inputstream = new FileInputStream(new 
       File("C:\\Users\\Username\\IdeaProjects\\Tika\\src\\example.xlsx")); 
     ParseContext pcontext = new ParseContext(); 

     //OOXml parser 
     OOXMLParser msofficeparser = new OOXMLParser(); 
     msofficeparser.parse(inputstream, handler, metadata, pcontext); 
     System.out.println("Contents of the document:" + handler.toString()); 
     System.out.println("Metadata of the document:"); 
     String[] metadataNames = metadata.names(); 

     for (String name : metadataNames) { 
      System.out.println(name + ": " + metadata.get(name)); 
     } 
    } 
} 

example.xlsx die Daten enthält (freundlicherweise den Link gehen durch die Daten zu sehen)

Was ich Ich möchte fragen, ob ich nur die Daten von, sagen wir mal, der Spalte "Alter" mit Apache Tika in Java extrahieren/holen möchte, gibt es eine Möglichkeit, es zu tun?

+0

haben Sie versucht, Apache poi? XSSF –

+1

warum nicht Apache poi verwenden? [link] (http://stackoverflow.com/questions/4276641/how-to-get-the-cell-value-of-a1cell-address-using-apache-po-3-6) – ebanouz

+0

vielen Dank für die hilfe –

Antwort