我想使用apachi poi从某个xlsx文件中读取数据(单元格值).下面的代码SXSSFWorkBook成功创建了实例并分配了db.xlsx(我的虚拟xlsx).我尝试更改工作表编号并使用该getSheetNumber方法仔细检查它以确保正确分配工作簿.
接下来我想为实例分配一个特定工作表(0带名称的索引main)SXSSFSheet,但目前它返回null.(我有尝试getSheetAt和getSheet方法).
SXSSFRow DummyRow;
SXSSFCell DummyCell;
int RowCount;
OPCPackage pkg = OPCPackage.open(blabla string adress);
XSSFWorkbook wb = new XSSFWorkbook(pkg);
Workbook MainBook = new SXSSFWorkbook(wb,100);
int a = MainBook.getNumberOfSheets();
SXSSFSheet MainSheet = (SXSSFSheet) MainBook.getSheetAt(0);
RowCount = MainSheet.getLastRowNum();
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑:
我尝试过getSheetName方法并得到了积极的结果.所以问题是在工作表中到达行.所以,最后一行getLastRowNum()不起作用.
我创建了一个覆盖它的标签paintComponent(用不同的格式绘制弧形)并将它们放在面板上.一切都运行良好,但位于相同位置(由.setlocation)的标签产生问题.
假设我在同一位置有3个不同形状的标签.首先创建ABC A,然后创建B,最后创建c.当我点击A时,我的功能描绘了A并显示"你点击了A"
但是当我点击B或C时,它就像我点击了A.
(我在滚动窗格中堆叠的面板中添加标签)
这是我制作标签的代码
for(int i=0;i<rowcount;i++){
arcstart = Rawazimuth(azimuth[i]);
//custom JLabel to paint it like an arc
MyLabel FLabel = new MyLabel(100, 50, (int)arcstart,cellid[i],lon[i],lat[i]);
FLabel.setOpaque(true);
Dimension LabelSize = new Dimension( 100,50);
FLabel.setSize(LabelSize);
//locate the JLabel to labels location. it might be same or not
FLabel.setLocation(lon[i], lat[i]);
MyPanel.add(FLabel);
}
Run Code Online (Sandbox Code Playgroud)
这是我自定义的jlabel类
public MyLabel(int W, int H, int start,int outcellid,int lonn, int latt) {
addMouseListener(this);
arcsizeW = W;
arcsizeH = H;
arcstart = start;
cellid = outcellid; …Run Code Online (Sandbox Code Playgroud)