问题
package jexcel.jxl.nimit;
import java.awt.Label;
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.CellType;
import jxl.LabelCell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.WritableCell;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class ExcelJxl {
/**
* @param args
* @throws IOException
* @throws BiffException
* @throws WriteException
* @throws RowsExceededException
*/
public static void main(String[] args) throws BiffException, IOException, RowsExceededException, WriteException {
// TODO Auto-generated method stub
ExcelJxl.WriteFile("D:\nimit.xls");
}
public static void WriteFile(String path) throws BiffException, IOException, RowsExceededException, WriteException{
Workbook wb=Workbook.getWorkbook(new File(path));
WritableWorkbook copy=Workbook.createWorkbook(new File("D:\temp.xls"),wb);
WritableSheet sheet = copy.getSheet(1);
WritableCell cell = sheet.getWritableCell(0,0);
String S="nimit";
if (cell.getType() == CellType.LABEL)
{
LabelCell l = (LabelCell) cell;
l.setString(S);
}
copy.write();
copy.close();
wb.close();
}
}
I have edited my program, and now it says that setString() The method setString(String) is undefined for the type LabelCell I read the Documentation, there is a method setString in the LabelCell type.
回答1:
LabelCell is just an interface with only one method i.e getString()
you can learn more about it here
You should use jxl.write.Label
instead.
What you should exactly do is as follows
You should import the following file
import jxl.write.Label
Then following is the code for adding a cell at desired location to an excel file
Workbook existingWorkbook = Workbook.getWorkbook(new File(fileToEdit.getAbsolutePath()));
WritableWorkbook workbookCopy = Workbook.createWorkbook(new File("output.xls"), existingWorkbook);
WritableSheet sheetToEdit = workbookCopy.getSheet(sheetName);
WritableCell cell;
Label l = new Label(currentColumn, currentRow, value);
cell = (WritableCell) l;
sheetToEdit.addCell(cell);
workbookCopy.write();
workbookCopy.close();
existingWorkbook.close();
currentColumn
and currentRow
define the index and value contains the String to be placed in that cell.
Hope it helps
来源:https://stackoverflow.com/questions/11338383/writing-to-an-existing-excel-file