package smartkv.client.workloads.ReportGenerator.Formats; import java.io.File; import java.io.IOException; import java.util.Locale; import jxl.CellView; import jxl.Workbook; import jxl.WorkbookSettings; import jxl.format.UnderlineStyle; import jxl.write.Formula; import jxl.write.Label; import jxl.write.Number; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; public class ExcelWriter { private WritableCellFormat timesBoldUnderline; private WritableCellFormat times; private String inputFile; private WritableSheet sheet; private WritableWorkbook workbook; public ExcelWriter(String path) throws WriteException, IOException{ this.setOutputFile(path); this.write(); } public void dumpFile() throws IOException, WriteException{ workbook.write(); workbook.close(); } public void setOutputFile(String inputFile) { this.inputFile = inputFile; } public void write() throws IOException, WriteException { File file = new File(inputFile); WorkbookSettings wbSettings = new WorkbookSettings(); wbSettings.setLocale(new Locale("en", "EN")); workbook = Workbook.createWorkbook(file, wbSettings); workbook.createSheet("Report", 0); sheet = workbook.getSheet(0); createLabel(sheet); // createContent(excelSheet); } public void createLabel(WritableSheet sheet) throws WriteException { // Lets create a times font WritableFont times10pt = new WritableFont(WritableFont.TIMES, 10); // Define the cell format times = new WritableCellFormat(times10pt); // Lets automatically wrap the cells times.setWrap(true); // Create create a bold font with unterlines WritableFont times10ptBoldUnderline = new WritableFont(WritableFont.TIMES, 10, WritableFont.BOLD, false); timesBoldUnderline = new WritableCellFormat(times10ptBoldUnderline); // Lets automatically wrap the cells timesBoldUnderline.setWrap(true); CellView cv = new CellView(); cv.setFormat(times); cv.setFormat(timesBoldUnderline); cv.setAutosize(true); } /*private void createContent(WritableSheet sheet) throws WriteException, RowsExceededException { // Write a few number for (int i = 1; i < 10; i++) { // First column addNumber(sheet, 0, i, i + 10); // Second column addNumber(sheet, 1, i, i * i); } // Lets calculate the sum of it StringBuffer buf = new StringBuffer(); buf.append("SUM(A2:A10)"); Formula f = new Formula(0, 10, buf.toString()); sheet.addCell(f); buf = new StringBuffer(); buf.append("SUM(B2:B10)"); f = new Formula(1, 10, buf.toString()); sheet.addCell(f); // Now a bit of text for (int i = 12; i < 20; i++) { // First column addLabel(sheet, 0, i, "Boring text " + i); // Second column addLabel(sheet, 1, i, "Another text"); } }*/ public void addCaption( int column, int row, String s) throws RowsExceededException, WriteException { Label label; label = new Label(column, row, s, timesBoldUnderline); sheet.addCell(label); } public void addNumber(int column, int row, double integer) throws WriteException, RowsExceededException { Number number; number = new Number(column, row, integer, times); sheet.addCell(number); } public void addNumber(int column, int row, int integer) throws WriteException, RowsExceededException { Number number; number = new Number(column, row, integer, times); sheet.addCell(number); } public void addNumber(int column, int row, long integer) throws WriteException, RowsExceededException { Number number; number = new Number(column, row, integer, times); sheet.addCell(number); } public void addLabel( int column, int row, String s) throws WriteException, RowsExceededException { Label label; label = new Label(column, row, s, times); sheet.addCell(label); } /* public static void main(String[] args) throws WriteException, IOException { Writer test = new Writer(); test.setOutputFile("./out.xls"); test.write(); System.out .println("Please check the result file under c:/temp/lars.xls "); }*/ }