使用jxl将数据添加到Excel文件

我正在使用jxl创build一个excel文件。 首先应该只包含一些关于样式的格式和信息。 然后,每当有人向其中添加新数据时,都应该进行更新。

public class WriteExcel { private static WritableWorkbook workbook; private static WritableCellFormat timesStandard; private String inputFile; final private static int FONT_SIZE = 12; public void setOutputFile(String inputFile) { this.inputFile = inputFile; } private void prepareSheet(WritableSheet sheet) throws WriteException { sheet.mergeCells(0, 0, 1, 0); sheet.mergeCells(3, 0, 4, 0); sheet.mergeCells(6, 0, 7, 0); WritableFont times12pt = new WritableFont(WritableFont.TIMES, FONT_SIZE); timesStandard = new WritableCellFormat(times12pt); CellView cv = new CellView(); cv.setFormat(timesStandard); } public void write() throws IOException, WriteException { File file = new File(inputFile); WorkbookSettings wbSettings = new WorkbookSettings(); wbSettings.setLocale(new Locale("en", "EN")); WritableWorkbook workbook = Workbook.createWorkbook(file, wbSettings); workbook.createSheet("First", 0); WritableSheet excelSheet = workbook.getSheet(0); prepareSheet(excelSheet); workbook.write(); workbook.close(); } public static void main(String[] args) throws WriteException, IOException { WriteExcel test = new WriteExcel(); test.setOutputFile("c:/Users/H/Desktop/test.xls"); test.write(); } } 

我明白,我需要另一个类,让我访问该文件,并添加一些数据:

 class Modify { private static Logger logger = Logger.getLogger(Modify.class); private File inputWorkbook; private File outputWorkbook; public Modify(String input, String output) { inputWorkbook = new File(input); outputWorkbook = new File(output); logger.info("Input file: " + input); logger.info("Output file: " + output); } public void readWrite() throws IOException, BiffException, WriteException { logger.info("Reading..."); Workbook w1 = Workbook.getWorkbook(inputWorkbook); logger.info("Copying..."); WritableWorkbook w2 = Workbook.createWorkbook(outputWorkbook, w1); if (inputWorkbook.getName().equals("test.xls")) { modify(w2); } w2.write(); w2.close(); logger.info("Done"); } private void modify(WritableWorkbook w) throws WriteException { logger.info("Modifying..."); WritableSheet sheet = w.getSheet("First"); //createContent(sheet); // contains methods responsible for adding data, for example: addNumber(sheet, cols, rows, 2); private static void addNumber(WritableSheet sheet, int column, int row, double d) throws WriteException, RowsExceededException { Number number; number = new Number(column, row, d, timesStandard); sheet.addCell(number); } } 

但我最终只有一个空白的Excel文件与合并的单元格。

我如何介绍修改?

既然你正在操作一个WritableWorkbook对象,它不是你的类的成员,你不应该使你的modify()方法无效,而是返回一个WritableWorkbook

就像我看到的那样,当你调用modify()时,会有一个新的变化,但是由于范围的原因,所有的变化都会被删除。

最后你会得到类似的东西

  private WritableWorkbook modify(WritableWorkbook w) throws WriteException { logger.info("Modifying..."); WritableSheet sheet = w.getSheet("First"); //createContent(sheet); // contains methods responsible for adding data, for example: addNumber(sheet, cols, rows, 2); return sheet; } 

相当基本。 而对于addNumber的一个类似的修改似乎也是如此。 然后相应的调用将是sheet = addNumber(sheet, cols, rows, 2);w2 = modify(w2);

如何使用JExcel API在Java中读写Excel文件。 一步一步做,我们需要创build一个Excel工作簿,进一步的步骤是创build工作表和添加内容到工作表。

  WritableWorkbook writableWorkbook = null; writableWorkbook = Workbook.createWorkbook(new File("WebSparrow.xls")); Workbook wb = null; wb = Workbook.getWorkbook(new File("WebSparrow.xls")); 

检查完整的示例http://www.websparrow.org/tutorials/java/how-to-read-and-write-excel-file-in-java