import
java.io.File;
import java.util.Date;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.write.DateFormat;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.NumberFormat;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.Number;
import jxl.write.Boolean;
public class ExcelParse ... {
WritableWorkbook wwk;
public WritableWorkbook getWritableWorkbook() ...{
return wwk;
}
public void setWritableWorkbook(WritableWorkbook wwk) ...{
this.wwk = wwk;
}
public WritableWorkbook newWritableWorkbook(String fileName)
throws Exception ...{
WritableWorkbook wwk = Workbook.createWorkbook(new File(fileName));
return wwk;
}
public void addSheet(String sheetName, int index) throws Exception ...{
wwk.createSheet(sheetName, index);
// wwk.write();//若增加此一行,则只能创建第一个sheet
}
public void removeSheet(int index) throws Exception ...{
wwk.removeSheet(index);
}
public void setLabel(WritableSheet sheet, int column, int row, String value)
throws WriteException ...{
Label labelCell = new Label(column, row, value);
sheet.addCell(labelCell);
}
// 格式化输入字符串
public void setFormatLabel(WritableSheet sheet, int column, int row,
String value, WritableFont writableFont) throws WriteException ...{
// WritableFont writableFont=new
// writableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,
// UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
WritableCellFormat writableCellFormat = new WritableCellFormat(
writableFont);
Label labelCell = new Label(column, row, value, writableCellFormat);
sheet.addCell(labelCell);
}
public void setNumber(WritableSheet sheet, int column, int row, double value)
throws WriteException ...{
Number numCell = new Number(column, row, value);
sheet.addCell(numCell);
// this.setFormatNumber(sheet, column, row, value, null);//行不通,报空指针异常
}
// 格式化输入数字
public void setFormatNumber(WritableSheet sheet, int column, int row,
double value, String format) throws WriteException ...{
NumberFormat numberFormat = new NumberFormat(format);
WritableCellFormat cellFormat = new WritableCellFormat(numberFormat);
Number numCell = new Number(column, row, value, cellFormat);
sheet.addCell(numCell);
}
public void setBoolean(WritableSheet sheet, int column, int row,
boolean value) throws WriteException ...{
Boolean boolCell = new Boolean(column, row, value);
sheet.addCell(boolCell);
}
public void setDateTime(WritableSheet sheet, int column, int row, Date value)
throws WriteException ...{
DateTime dateCell = new DateTime(column, row, value);
sheet.addCell(dateCell);
}
// 格式化输入日期
public void setFormatDateTime(WritableSheet sheet, int column, int row,
Date value, String format) throws WriteException ...{
DateFormat dateFormat = new DateFormat(format);
WritableCellFormat cellFormat = new WritableCellFormat(dateFormat);
DateTime dateCell = new DateTime(column, row, value, cellFormat);
sheet.addCell(dateCell);
}
public void setImage(WritableSheet sheet, int fromColumn, int fromRow,
int toColumn, int toRow, String imageUri) throws WriteException ...{
File f = new File(imageUri);
WritableImage imageCell = new WritableImage(fromColumn, fromRow,toColumn,toRow, f);
sheet.addImage(imageCell);
}
public Workbook getWorkbook(String fileName) throws Exception ...{
Workbook wkb = Workbook.getWorkbook(new File(fileName));
return wkb;
}
public Sheet[] getSheets() ...{
return wwk.getSheets();
}
public void close() throws Exception ...{
wwk.write();
this.wwk.close();
}
public static void main(String[] args) throws Exception ...{
ExcelParse ep = new ExcelParse();
ep.setWritableWorkbook(ep.newWritableWorkbook("create.xls"));
ep.addSheet("firstSheet", 0);
ep.addSheet("thirdSheet", 1);// index不一定是一系列连接数
ep.addSheet("secondSheet", 1);// 位置第二位,后面的后移一位
ep.removeSheet(0);
WritableSheet sheet = (WritableSheet) ep.getSheets()[0];
int column = 2, row = 2;
ep.setBoolean(sheet, column++, row++, false);
ep.setDateTime(sheet, column++, row++, new Date());
ep.setLabel(sheet, column++, row++, "String label");
ep.setNumber(sheet, column++, row++, 3.1415926);
ep.setImage(sheet, 5, 10, 10, 20, "sunset.png");
ep.close();
// Workbook workbook=ep.getWorkbook("create.xls");
}
}
import java.util.Date;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.write.DateFormat;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.NumberFormat;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.Number;
import jxl.write.Boolean;
public class ExcelParse ... {
WritableWorkbook wwk;
public WritableWorkbook getWritableWorkbook() ...{
return wwk;
}
public void setWritableWorkbook(WritableWorkbook wwk) ...{
this.wwk = wwk;
}
public WritableWorkbook newWritableWorkbook(String fileName)
throws Exception ...{
WritableWorkbook wwk = Workbook.createWorkbook(new File(fileName));
return wwk;
}
public void addSheet(String sheetName, int index) throws Exception ...{
wwk.createSheet(sheetName, index);
// wwk.write();//若增加此一行,则只能创建第一个sheet
}
public void removeSheet(int index) throws Exception ...{
wwk.removeSheet(index);
}
public void setLabel(WritableSheet sheet, int column, int row, String value)
throws WriteException ...{
Label labelCell = new Label(column, row, value);
sheet.addCell(labelCell);
}
// 格式化输入字符串
public void setFormatLabel(WritableSheet sheet, int column, int row,
String value, WritableFont writableFont) throws WriteException ...{
// WritableFont writableFont=new
// writableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,
// UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
WritableCellFormat writableCellFormat = new WritableCellFormat(
writableFont);
Label labelCell = new Label(column, row, value, writableCellFormat);
sheet.addCell(labelCell);
}
public void setNumber(WritableSheet sheet, int column, int row, double value)
throws WriteException ...{
Number numCell = new Number(column, row, value);
sheet.addCell(numCell);
// this.setFormatNumber(sheet, column, row, value, null);//行不通,报空指针异常
}
// 格式化输入数字
public void setFormatNumber(WritableSheet sheet, int column, int row,
double value, String format) throws WriteException ...{
NumberFormat numberFormat = new NumberFormat(format);
WritableCellFormat cellFormat = new WritableCellFormat(numberFormat);
Number numCell = new Number(column, row, value, cellFormat);
sheet.addCell(numCell);
}
public void setBoolean(WritableSheet sheet, int column, int row,
boolean value) throws WriteException ...{
Boolean boolCell = new Boolean(column, row, value);
sheet.addCell(boolCell);
}
public void setDateTime(WritableSheet sheet, int column, int row, Date value)
throws WriteException ...{
DateTime dateCell = new DateTime(column, row, value);
sheet.addCell(dateCell);
}
// 格式化输入日期
public void setFormatDateTime(WritableSheet sheet, int column, int row,
Date value, String format) throws WriteException ...{
DateFormat dateFormat = new DateFormat(format);
WritableCellFormat cellFormat = new WritableCellFormat(dateFormat);
DateTime dateCell = new DateTime(column, row, value, cellFormat);
sheet.addCell(dateCell);
}
public void setImage(WritableSheet sheet, int fromColumn, int fromRow,
int toColumn, int toRow, String imageUri) throws WriteException ...{
File f = new File(imageUri);
WritableImage imageCell = new WritableImage(fromColumn, fromRow,toColumn,toRow, f);
sheet.addImage(imageCell);
}
public Workbook getWorkbook(String fileName) throws Exception ...{
Workbook wkb = Workbook.getWorkbook(new File(fileName));
return wkb;
}
public Sheet[] getSheets() ...{
return wwk.getSheets();
}
public void close() throws Exception ...{
wwk.write();
this.wwk.close();
}
public static void main(String[] args) throws Exception ...{
ExcelParse ep = new ExcelParse();
ep.setWritableWorkbook(ep.newWritableWorkbook("create.xls"));
ep.addSheet("firstSheet", 0);
ep.addSheet("thirdSheet", 1);// index不一定是一系列连接数
ep.addSheet("secondSheet", 1);// 位置第二位,后面的后移一位
ep.removeSheet(0);
WritableSheet sheet = (WritableSheet) ep.getSheets()[0];
int column = 2, row = 2;
ep.setBoolean(sheet, column++, row++, false);
ep.setDateTime(sheet, column++, row++, new Date());
ep.setLabel(sheet, column++, row++, "String label");
ep.setNumber(sheet, column++, row++, 3.1415926);
ep.setImage(sheet, 5, 10, 10, 20, "sunset.png");
ep.close();
// Workbook workbook=ep.getWorkbook("create.xls");
}
}
疑问:如果只修改Excel中的一小部分该如何?
import
java.io.File;
import jxl.CellType;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCell;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExcelUpdate ... {
public static void main(String[] args)throws Exception...{
Workbook rwb=Workbook.getWorkbook(new File("create.xls"));
WritableWorkbook wwb=Workbook.createWorkbook(new File("b.xls"),rwb);//把create.xls复制到b.xls
WritableSheet ws=wwb.getSheet(0);
WritableCell wc=ws.getWritableCell(2,2);
if(wc.getType()==CellType.LABEL)...{
Label label=(Label)wc;
label.setString("The value has been modified");
//不需要这行,不然异常:Cell has already been added to a worksheet
//ws.addCell(label);
}
wwb.write();
wwb.close();
rwb.close();
}
}
import jxl.CellType;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCell;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExcelUpdate ... {
public static void main(String[] args)throws Exception...{
Workbook rwb=Workbook.getWorkbook(new File("create.xls"));
WritableWorkbook wwb=Workbook.createWorkbook(new File("b.xls"),rwb);//把create.xls复制到b.xls
WritableSheet ws=wwb.getSheet(0);
WritableCell wc=ws.getWritableCell(2,2);
if(wc.getType()==CellType.LABEL)...{
Label label=(Label)wc;
label.setString("The value has been modified");
//不需要这行,不然异常:Cell has already been added to a worksheet
//ws.addCell(label);
}
wwb.write();
wwb.close();
rwb.close();
}
}