jxl kullanarak bir excel dosyası oluşturuyorum. İlk başta stilleri hakkında sadece bazı biçimlendirme ve bilgi içermelidir. Daha sonra, birisi ona yeni veri eklediğinde güncellenmelidir. Sadece birleştirilmiş hücrelerle dosyasınıBir Excel dosyasına jxl kullanarak veri ekleme
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);
}
}
Ama boş bir Excel ile sona:
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();
}
}
Ben beni dosyaya erişmek izin vermedi ve ona bazı verileri eklersiniz başka bir sınıf gerektiğini anlıyoruz.
Değişiklikleri nasıl tanıtabilirim?
bir çözüm [Apache POI] (http://poi.apache.org/) geçmek için, sadece tavsiye yok. – Kai
Sadece temel işlemler, jxl iyi olmalı. – Hurdler