java – 使用jxl将数据添加到Excel文件
发布时间:2020-05-24 23:02:20 所属栏目:Java 来源:互联网
导读:我正在使用jxl创建一个excel文件.首先应该只包含一些关于样式的格式和信息.然后,每当有人向其添加新数据时,都应该更新它. public class WriteExcel { private static WritableWorkbook workbook; private static WritableCellFormat timesStandard; privat
|
我正在使用jxl创建一个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,1,0);
sheet.mergeCells(3,4,0);
sheet.mergeCells(6,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文件,仅包含合并的单元格. 如何介绍修改? 解决方法既然你正在操作一个不是w2类的成员的WritableWorkbook对象,你不应该让你的modify()方法不是void而是返回一个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,2);
return sheet;
}
基本上.对addNumber的类似修改似乎也是如此.然后相应的调用将是sheet = addNumber(sheet,2);和w2 =修改(w2); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
