Excel - 自动输入到下一个空行

Posted

技术标签:

【中文标题】Excel - 自动输入到下一个空行【英文标题】:Excel - automatic input to next empty row 【发布时间】:2016-04-12 19:06:50 【问题描述】:

我正在开发一个将特定数据存储在 excel 存档中的程序。我写了一个代码来创建一个 excel 文件、工作表并在其中写入。我的代码如下所示。问题是,在存档中写入时,我必须指定应该将信息插入的行。有没有办法让代码自己自动插入下一个新的空行?

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 "); 

【问题讨论】:

【参考方案1】:

我没有使用过那个 API,所以不知道是否有更好的方法来做到这一点。另外,Java不是我的菜,所以不能给你任何代码示例。

您需要在电子表格中找到第一个空行。假设总是填充 A 列,您可以从第 1 行循环到第 N 行,直到找到一个空行。

您使用的 API 教程展示了如何读取 excel 文件。

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

【讨论】:

以上是关于Excel - 自动输入到下一个空行的主要内容,如果未能解决你的问题,请参考以下文章

java jxl 读取excel时读取了很多空行 求解决办法

如何判断Excel中是不是有空行

Notepad++怎么删除空行

excel 怎样筛选出 有一个值为空的行

java poi读取Excel,怎么判断空行

如何删除laravel excel中的空行?