Konvertieren Sie die Excel-Methode in eine XML-Methode

public classAnalysisEtoX {public static voidmain(String[] args) {try{

System.out.println("=============");//Verwenden Sie den Eingabestream, um die entsprechende Excel-Datei von der lokalen Datei abzurufen

InputStream stream = new FileInputStream("C:\Users\Administrator\Desktop\Examination Questions.xlsx");//Geben Sie den Pfad der zu generierenden XML-Datei an und erstellen Sie das Dateiobjekt

File f = new File("test.xml");// Erstellen Sie ein neues Dateiobjekt und speichern Sie die nach dem Parsen erhaltene XML in der geänderten Datei

writeXML(stream, f);//Daten in XML-Form in Text schreiben

} Catch(FileNotFoundException e) {

System.out.println("Die Datei mit dem angegebenen Pfad wurde nicht gefunden!");

e.printStackTrace();

}catch(IOException e) {//TODO Automatisch generierter Catch-Block

e.printStackTrace();

}

}private static void writeXML(InputStream stream, File f) throwsIOException {

System.out.println(“intowriterXML”);

FileOutputStream fo= new FileOutputStream(f);//Den Eingabestream abrufen

Document doc = readExcell(stream);//EXCEL-Funktion lesen

Format format = Format.getCompactFormat().setEncoding(“UTF-8”).setIndent(“”);

XMLOutputter XMLOut= new XMLOutputter(format);//Neue Zeile nach dem Element, jedes Element wird um vier Leerzeichen eingerückt

XMLOut.output(doc, fo);

fo.close();

}private staticDocument readExcell(InputStream stream) {

System.out.println("into readExcell");//Legen Sie das Stammelement fest

Element root = new Element(“tax_institutions”);

Dokument doc= newDocument(root);try{

HSSFWorkbook hw= newHSSFWorkbook(stream);//Ermitteln Sie die Anzahl der Arbeitsmappen, d. h. wie viele Blatt-Arbeitsmappen in einer Excel-Datei enthalten sind

int WbLength =hw.getNumberOfSheets();

System.out.println(“WbLength=” +WbLength);for (int i = 0; i < WbLength; i++) {

HSSFSheet shee=hw.getSheetAt(i);int length =shee.getLastRowNum();

System.out.println(“行数:” +length);for (int j = 1; j <= length; j++) {

HSSFRow row=shee.getRow(j);if (row == null) {continue;

}int cellNum = row.getPhysicalNumberOfCells();//Ermitteln Sie die Position der letzten Zelle in einer Zeile

System.out.println(“Anzahl der Spalten cellNum:” +cellNum);

Element e= null;//Legen Sie die parallelen Elemente unter das Wurzelelement

e = new Element(“tax_institution”);//Element[] es = new Element[16];

for (int k = 0; k < cellNum; k++) {

HSSFCell cell= row.getCell((short) k);

String temp=get(k);

System.out.print(k+ " " + temp + „:“);

Element item= newElement(temp);if (cell == null) {

item.setText(“”);

e.addContent(item);

cellNum++;//Wenn eine leere Spalte vorhanden ist, erhöht sich cellNum um 1. Dieser Schritt ist sehr wichtig.

weitermachen;

}anders{

String cellvalue=""; switch(cell.getCellType()) {//Wenn der aktuelle Zellentyp NUMERIC ist

caseHSSFCell.CELL_TYPE_NUMERIC:caseHSSFCell.CELL_TYPE_FORMULA: {//Bestimmen Sie, ob die aktuelle Zelle das Datum ist

if(HSSFDateUtil.isCellDateFormatted(cell)) {//Wenn es sich um einen Datumstyp handelt, konvertieren Sie es in das Datenformat//Methode 1: Das Datenformat ist wie folgt mit Stunden, Minuten und Sekunden: 2011-10-12 0:00:00 // Zellwert=

cell.getDateCellValue().toLocaleString();//Methode 2: Das Datenformat wie dieses ist ohne Stunden, Minuten und Sekunden: 2011-10-12

Datum date =cell.getDateCellValue();

SimpleDateFormat sdf= new SimpleDateFormat(“yyyy-MM-dd“);

cellvalue=sdf.format(date);

item.setText(cellvalue);

}//Wenn es eine reine Zahl ist

else{//Den Wert der aktuellen Zelle abrufen

cellvalue = String.valueOf((int) cell.getNumericCellValue());

item.setText(cellvalue);

}brechen;

}//Wenn der Typ der aktuellen Zelle STRIN ist

caseHSSFCell.CELL_TYPE_STRING://Ruft die aktuelle Zellenzeichenfolge ab

cellvalue =cell.getRichStringCellValue().getString();

item.setText(cellvalue);break;//Standardzellenwert

Standard:

Zellwert = " ";

item.setText(cellvalue);

}

e.addContent(item);

System.out.println(cellvalue);

}

}

root.addContent(e);

}

}

}catch(Ausnahme e) {

e.printStackTrace();

}endlich{versuchen{

stream.close();

}catch(IOException e1) {

e1.printStackTrace();

}

}returndoc;

}//Legen Sie den Namen des untergeordneten Elements im parallelen Element fest

privater statischer String get(intk) {

String test= „“;switch(k) {case 0:

test= „org_name“;break;case 1:

test= „legal_mobile_phone“;break;Fall 2:

test= „org_address“;break;Fall 3:

test= „cert_type“;break;Fall 4:

test= „Postleitzahl“;break;Fall 5:

test= „reg_sum“;break;Fall 6:

test= „business_scope“;break;Fall 7:

test= „social_credit_code“;break;Fall 8:

test= „reg_type“;break;Fall 9:

test= „legal_person_name“;break;case 10:

test= „cert_number“;break;case 11:

test= „found_time“;break;case 12:

test= „service_status“;break;Fall 13:

test= „staff_sum“;break;Fall 14:

test= „partner_sum“;break;Fall 15:

test= „is_branch_org“;break;default:

} returntest;

}

}

geprüft werden

Ich denke du magst

Origin blog.csdn.net/weixin_45127646/article/details/127494139
Empfohlen
Rangfolge