1
インターフェイスWritableSheet
インターフェイスSheet
(jxl)ライブラリを拡張します。私は WritableSheet
にあるaddCell()
を使用したいと思います。ExcelのJavaでSelenium WebDriverの2つのインターフェイス間でダウンキャスティング/アップキャスティングを行う方法
しかし、Sheet
オブジェクトをWritableSheet
オブジェクトに変換しようとすると、ClassCastException
となります。私は2つのインターフェイス間で型キャストする方法を知りたい。
は私のコードです:
package xyz;
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class WriteExcel12
{
public static Workbook wb;
public static Sheet s;
public static Cell c;
public static WritableSheet ws;
public static Label l;
public static void main(String[] args) throws BiffException, IOException, RowsExceededException, WriteException
{
File f=new File("D:/Input.xls");
wb=Workbook.getWorkbook(f);
s=wb.getSheet("Data");
//WritableSheet extends Sheet
ws=(WritableSheet)s;//ClassCastException here
//Read cell(0,0) from Sheet named Data
c=s.getCell(0,0);
String a=c.getContents();
//Read cell(0,1) from Sheet named Data
c=s.getCell(1,0);
String b=c.getContents();
//Read cell(0,2) from Sheet named Data
c=s.getCell(2,0);
String d=c.getContents();
//Convert String to integer
int e=Integer.parseInt(a);
System.out.println(e);
int g=Integer.parseInt(b);
System.out.println(g);
int h=Integer.parseInt(d);
System.out.println(h);
//Perform addition
int result=e+g+h;
System.out.println(result);
//Convert result which is it to String
String ans=Integer.toString(result);
// Write String ans to cell(0,3)
l=new Label(3,0,ans);
ws.addCell(l);
}
}
Data.xls
10 | 20 | 30 |
、私は** ** Input.xlsに**データ**という名前の上記code.Myシートを試してみましたこと**入力**という名前のシートによって上書きされ、シートは空です。 – Pearl