2017-11-13 5 views
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 |


答えて

0

あなたは、あなたのWritableSheetを得ることができ、あなたのWorkbook .ThenからWritableWorkbookを作成することができます。

File f=new File("D:/Input.xls"); 
wb=Workbook.getWorkbook(f); 
WritableWorkbook copy = Workbook.createWorkbook(f, workbook); 
WritableSheet sheet = copy.getSheet("Data"); 
+0

、私は** ** Input.xlsに**データ**という名前の上記code.Myシートを試してみましたこと**入力**という名前のシートによって上書きされ、シートは空です。 – Pearl

関連する問題