[英]How is downcasting/upcasting done between 2 interfaces in Selenium WebDriver in Java in Excel
接口WritableSheet
扩展了接口工作Sheet
(jxl)库。 我想使用WritableSheet
存在的addCell()
。
但是,当我尝试将Sheet
对象转换为WritableSheet
对象时,出现ClassCastException
。 我想知道如何在两个接口之间进行类型转换。
下面是我的代码:
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);
}
}
数据文件
10 | 20 | 30 |
您可以从Workbook
创建一个WritableWorkbook
,然后获取WritableSheet
。
File f=new File("D:/Input.xls");
wb=Workbook.getWorkbook(f);
WritableWorkbook copy = Workbook.createWorkbook(f, workbook);
WritableSheet sheet = copy.getSheet("Data");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.