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());
}
}
}