Sunteți pe pagina 1din 3

/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.quan.

excel; /** * * @author sanjeev.das */ import org.apache.poi.hssf.usermodel.*; import org.w3c.dom.*; import java.io.*; import java.util.ArrayList; import import import import import import import javax.xml.parsers.DocumentBuilder; javax.xml.parsers.DocumentBuilderFactory; javax.xml.parsers.ParserConfigurationException; javax.xml.stream.XMLInputFactory; javax.xml.stream.XMLStreamConstants; javax.xml.stream.XMLStreamException; javax.xml.stream.XMLStreamReader;

import org.xml.sax.SAXException; public class XMLToExcel { ArrayList<String> arrayList = null; public void populatelist(File xmlDocumnet) { File file = new File("D:/sanjeev/BOOKS/import_CI_test.xml"); XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader r = null; try { r = factory.createXMLStreamReader(new FileInputStream(fi le)); arrayList = new ArrayList<String>(); int event = r.getEventType(); while (true) { switch (event) { case XMLStreamConstants.START_ELEMENT: if(!(r.getName().toString()).equals("ci" ) && !(r.getName().toString()).equals("GRLoader")){ if(arrayList.contains(r.getName( ).toString())){ break; }else{ arrayList.add(r.getName( ).toString()); } }else{ break; } break; }

if (!r.hasNext()) break; event = r.next(); } } catch (Exception e) { e.printStackTrace(); } finally { try { r.close(); } catch (XMLStreamException e) { e.printStackTrace(); } } } public void generateExcel(File xmlDocument) { try {// Creating a Workbook HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet spreadSheet = wb.createSheet("spreadSheet"); spreadSheet.setColumnWidth((short) 0, (short) (256 * 25)); spreadSheet.setColumnWidth((short) 1, (short) (256 * 25)); // Parsing XML Document DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(xmlDocument); NodeList nodeList = document.getElementsByTagName("ci"); // Creating Rows HSSFRow row0 = spreadSheet.createRow(0); HSSFCell cell = row0.createCell((short) 2); cell = row0.createCell((short) 2); for(int j=0;j<arrayList.size();j++){ cell = row0.createCell((short) (j)); cell.setCellValue(arrayList.get(j)); } for (int i = 1; i <= nodeList.getLength(); i++) { HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setBorderRight(HSSFCellStyle.BORDER_MEDIUM); cellStyle.setBorderTop(HSSFCellStyle.BORDER_MEDIUM); cellStyle.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM); cellStyle.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM); row0 = spreadSheet.createRow(i); for(int j=0;j<arrayList.size();j++){ cell = row0.createCell((short) (j)); cell.setCellValue(((Element) (nodeList.item(i-1))).getElementsByTagN ame(arrayList.get(j)).item(0).getFirstChild().getNodeValue()); } } // Outputting to Excel spreadsheet

FileOutputStream output = new FileOutputStream(new File("D:/sanjeev/BOO KS/CI_excel.xls")); wb.write(output); output.flush(); output.close(); } catch (IOException e) { System.out.println("IOException " + e.getMessage()); } catch (ParserConfigurationException e) { System.out.println("ParserConfigurationException " + e.getMessage()); } catch (SAXException e) { System.out.println("SAXException " + e.getMessage()); } } public static void main(String[] argv) { File xmlDocument = new File("D:/sanjeev/BOOKS/import_CI_test.xml"); XMLToExcel excel = new XMLToExcel(); excel.populatelist(xmlDocument); excel.generateExcel(xmlDocument); } }

S-ar putea să vă placă și