package jxl.demo; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import jxl.Cell; import jxl.CellType; import jxl.Sheet; import jxl.Workbook; import jxl.format.Border; import jxl.format.BorderLineStyle; import jxl.format.CellFormat; import jxl.format.Colour; import jxl.format.Font; import jxl.format.Pattern; public class XML { private OutputStream out; private String encoding; private Workbook workbook; public XML(Workbook w, OutputStream out, String enc, boolean f) throws IOException { this.encoding = enc; this.workbook = w; this.out = out; if (this.encoding == null || !this.encoding.equals("UnicodeBig")) this.encoding = "UTF8"; if (f) { writeFormattedXML(); } else { writeXML(); } } private void writeXML() throws IOException { try { OutputStreamWriter osw = new OutputStreamWriter(this.out, this.encoding); BufferedWriter bw = new BufferedWriter(osw); bw.write(""); bw.newLine(); bw.write(""); bw.newLine(); bw.newLine(); bw.write(""); bw.newLine(); for (int sheet = 0; sheet < this.workbook.getNumberOfSheets(); sheet++) { Sheet s = this.workbook.getSheet(sheet); bw.write(" "); bw.newLine(); bw.write(" "); bw.newLine(); Cell[] row = null; for (int i = 0; i < s.getRows(); i++) { bw.write(" "); bw.newLine(); row = s.getRow(i); for (int j = 0; j < row.length; j++) { if (row[j].getType() != CellType.EMPTY) { bw.write(" "); bw.write(""); bw.write(""); bw.newLine(); } } bw.write(" "); bw.newLine(); } bw.write(" "); bw.newLine(); } bw.write(""); bw.newLine(); bw.flush(); bw.close(); } catch (UnsupportedEncodingException e) { System.err.println(e.toString()); } } private void writeFormattedXML() throws IOException { try { OutputStreamWriter osw = new OutputStreamWriter(this.out, this.encoding); BufferedWriter bw = new BufferedWriter(osw); bw.write(""); bw.newLine(); bw.write(""); bw.newLine(); bw.newLine(); bw.write(""); bw.newLine(); for (int sheet = 0; sheet < this.workbook.getNumberOfSheets(); sheet++) { Sheet s = this.workbook.getSheet(sheet); bw.write(" "); bw.newLine(); bw.write(" "); bw.newLine(); Cell[] row = null; CellFormat format = null; Font font = null; for (int i = 0; i < s.getRows(); i++) { bw.write(" "); bw.newLine(); row = s.getRow(i); for (int j = 0; j < row.length; j++) { if (row[j].getType() != CellType.EMPTY || row[j].getCellFormat() != null) { format = row[j].getCellFormat(); bw.write(" "); bw.newLine(); bw.write(" "); bw.write(""); bw.write(""); bw.newLine(); if (row[j].getCellFormat() != null) { bw.write(" "); bw.newLine(); font = format.getFont(); bw.write(" "); bw.newLine(); if (format.getBackgroundColour() != Colour.DEFAULT_BACKGROUND || format.getPattern() != Pattern.NONE) { bw.write(" "); bw.newLine(); } if (format.getBorder(Border.TOP) != BorderLineStyle.NONE || format.getBorder(Border.BOTTOM) != BorderLineStyle.NONE || format.getBorder(Border.LEFT) != BorderLineStyle.NONE || format.getBorder(Border.RIGHT) != BorderLineStyle.NONE) { bw.write(" "); bw.newLine(); } if (!format.getFormat().getFormatString().equals("")) { bw.write(" "); bw.newLine(); } bw.write(" "); bw.newLine(); } bw.write(" "); bw.newLine(); } } bw.write(" "); bw.newLine(); } bw.write(" "); bw.newLine(); } bw.write(""); bw.newLine(); bw.flush(); bw.close(); } catch (UnsupportedEncodingException e) { System.err.println(e.toString()); } } }