我对 java 几乎是新手(以前总是在 c# 上),需要创建一个 swing 应用程序,我需要从 xls 文件中读取数据。所以我使用jXL。
我有一个类,它从 excel 文件中返回第一张工作表的名称,在 jFileChooser 中选择。这是代码:
import java.io.File;
import jxl.Sheet;
import jxl.Workbook;
public class ExcelObject
{
private String filename = null;
private Workbook wb = null;
private Sheet sheet = null;
public ExcelObject(String f)
{
filename = f;
}
public String getSheetName()
{
String sheet_name = null;
try
{
wb = Workbook.getWorkbook(new File(filename));
sheet = wb.getSheet(0);
sheet_name = sheet.getName();
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
wb.close();
}
return sheet_name;
}
}
在程序调用中看起来像:
ExcelObject ex = new ExcelObject(filename);
String s = ex.getSheetName();
lblReport.setText(s);
所以问题是:当在eclipse(3.4.2)中运行时,我得到一个正确的值,当jar被编译时,没有返回值!我的意思是 lblReport 是空的,没有异常和警告。
请记住:所有其他外部 jar 都可以正常工作。
我尝试了很多东西,但没有一个有效。
另外,如果我做类似的事情
ExcelObject ex = new ExcelObject(filename);
String s = ex.getSheetName();
// lblReportRun.setText(s);
lblReportRun.setText("Test");
lblAnyOtherLabel.setText("Test");
标签中也没有显示任何文本,在编译的 jar 中,在 eclipse 中也很好。