2016-04-12 39 views
1

Belirli verileri bir Excel arşivinde saklayan bir program geliştiriyorum. İçinde bir excel dosyası oluşturan bir kod yazdım ve yazıyor. Kodum aşağıda gösterilmiştir. Sorun şu ki, arşivde yazarken bilgileri girmesi gereken satırı belirtmem gerekiyor. Kodun kendiliğinden bir sonraki yeni boş satıra otomatik olarak eklenmesini sağlamak için var mı?Excel - bir sonraki boş alana otomatik giriş

package de.vogella.java.excel.writer; 
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 WriteExcel { 
private WritableCellFormat timesBoldUnderline; 
private WritableCellFormat times; 
private String inputFile; 

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")); 
WritableWorkbook workbook = Workbook.createWorkbook(file, wbSettings); 
workbook.createSheet("Report", 0); 
WritableSheet excelSheet = workbook.getSheet(0); 
createLabel(excelSheet); 
createContent(excelSheet); 
workbook.write(); 
workbook.close(); } 
private 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, 
UnderlineStyle.SINGLE); 
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); 
// Write a few headers 
addCaption(sheet, 0, 0, "type"); 
addCaption(sheet, 1, 0, "result"); 
addCaption(sheet, 2, 0, "time"); 
addCaption(sheet, 3, 0, "date");} 
private void createContent(WritableSheet sheet) throws WriteException, 
RowsExceededException { 
// Write a few number 
for (int i = 1; i < 10; i++) { 
// First column 
addLabel(sheet, 0, i, "Boring text " + i); 
// Second column 
addNumber(sheet, 1, i, i * i); 
// third column 
addNumber(sheet, 2, i, i + 10); 
//furth column 
addNumber(sheet, 3, i, i * i);} } 
private void addCaption(WritableSheet sheet, int column, int row, String s) 
throws RowsExceededException, WriteException { 
Label label; 
label = new Label(column, row, s, timesBoldUnderline); 
sheet.addCell(label); } 
private void addNumber(WritableSheet sheet, int column, int row, 
Integer integer) throws WriteException, RowsExceededException { 
Number number; 
number = new Number(column, row, integer, times); 
sheet.addCell(number); } 
private void addLabel(WritableSheet sheet, 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 { 
WriteExcel test = new WriteExcel(); 
test.setOutputFile("D:ghada.xls"); 
test.write(); 
System.out.println("Please check the result file under c:/temp/lars.xls "); }} 

cevap

0

Bu API'yi kullanmadım, bu nedenle bunu yapmanın daha iyi bir yolu olup olmadığını bilmiyorum. Ayrıca, Java benim bir şey değil, bu yüzden size herhangi bir kod örneği veremiyorum.

Elektronik tablonuzdaki ilk boş satırı bulmanız gerekiyor. Sütun A her zaman doldurulursa, boş bir satır bulana kadar satır 1'den N'ye döngü yapabilirsiniz.

Kullandığınız API'nın öğreticisi, bir excel dosyasını nasıl okuyabileceğinizi gösterir.

http://www.vogella.com/tutorials/JavaExcel/article.html