求帮助!!!!!!!!!!
我在windows下正常执行,正常操作Excle文件。 但在linux下执行 getWorkbook的时候就出错!!
以下是代码:
------------------------/**
*第一个参数是模板的xls文件的目录,第二个是新生成的xls文件,第三个是 xls的标题,第四个是数据list,里面是javabean。
*/
public File makeXls(String templateExcelFile, String newExcelFile,
String title, List listData) {
Workbook workbook = null;
File outFile = null;
try {
// 构建Workbook对象, 只读Workbook对象
// 直接从本地文件创建Workbook, 从输入流创建Workbook
log.info(templateExcelFile);//在linux读日志是 模板文件路径,是对的
InputStream ins = new FileInputStream(templateExcelFile);
log.info(ins==null); // false ,不为空
/////////////TEST////////////////
File testfile = new File(templateExcelFile);
log.info(testfile ==null); // false ,不为空
log.info(testfile.getName()); //loanInfoSource.xls
log.info(testfile.getPath()); ///home/gdxy/apache-tomcat-6.0.10/webapps/bploan/xlsdown/loanInfoSource.xls
//输出文件名和路径是对的。 但执行下步 就出错!!! 在 windows 下是正常的 ////////////////////////////////
workbook = Workbook.getWorkbook(ins); //这步就有错!!!!!!!!!!!!!!!!!!!!
//执行异常 ,java.lang.NullPointerException (文件是存在的,在windows下没问题,可在linux下就过不去。文件已获取到了,但就是过不去 这步 Workbook.getWorkbook , 这样写也有问题 workbook = Workbook.getWorkbook(new File(templateExcelFile));也是不行.
// 利用已经创建的Excel工作薄创建新的可写入的Excel工作薄
outFile = new File(newExcelFile);
WritableWorkbook wwb = Workbook.createWorkbook(outFile, workbook);
// 读取第一张工作表
WritableSheet dataSheet = wwb.getSheet(0);
// 设置冻结单元格 冻结标题。不让标题和列 滚动
dataSheet.getSettings().setHorizontalFreeze(1);
dataSheet.getSettings().setVerticalFreeze(2); if (listData == null) // 下载后再次执行,数据将为空,阻止报空指针错误。
{
return null;
}
// 插入数据
................................
-----------------------------------------------------------------------------------------------------------------------
templateExcelFile 是存在的文件,我debug并输出文件名和路径都是对的。
workbook = Workbook.getWorkbook(file);
然后这步骤就不行,就出错.
帮帮我吧
QQ 15159909
e-mail : [email protected]
我在windows下正常执行,正常操作Excle文件。 但在linux下执行 getWorkbook的时候就出错!!
以下是代码:
------------------------/**
*第一个参数是模板的xls文件的目录,第二个是新生成的xls文件,第三个是 xls的标题,第四个是数据list,里面是javabean。
*/
public File makeXls(String templateExcelFile, String newExcelFile,
String title, List listData) {
Workbook workbook = null;
File outFile = null;
try {
// 构建Workbook对象, 只读Workbook对象
// 直接从本地文件创建Workbook, 从输入流创建Workbook
log.info(templateExcelFile);//在linux读日志是 模板文件路径,是对的
InputStream ins = new FileInputStream(templateExcelFile);
log.info(ins==null); // false ,不为空
/////////////TEST////////////////
File testfile = new File(templateExcelFile);
log.info(testfile ==null); // false ,不为空
log.info(testfile.getName()); //loanInfoSource.xls
log.info(testfile.getPath()); ///home/gdxy/apache-tomcat-6.0.10/webapps/bploan/xlsdown/loanInfoSource.xls
//输出文件名和路径是对的。 但执行下步 就出错!!! 在 windows 下是正常的 ////////////////////////////////
workbook = Workbook.getWorkbook(ins); //这步就有错!!!!!!!!!!!!!!!!!!!!
//执行异常 ,java.lang.NullPointerException (文件是存在的,在windows下没问题,可在linux下就过不去。文件已获取到了,但就是过不去 这步 Workbook.getWorkbook , 这样写也有问题 workbook = Workbook.getWorkbook(new File(templateExcelFile));也是不行.
// 利用已经创建的Excel工作薄创建新的可写入的Excel工作薄
outFile = new File(newExcelFile);
WritableWorkbook wwb = Workbook.createWorkbook(outFile, workbook);
// 读取第一张工作表
WritableSheet dataSheet = wwb.getSheet(0);
// 设置冻结单元格 冻结标题。不让标题和列 滚动
dataSheet.getSettings().setHorizontalFreeze(1);
dataSheet.getSettings().setVerticalFreeze(2); if (listData == null) // 下载后再次执行,数据将为空,阻止报空指针错误。
{
return null;
}
// 插入数据
................................
-----------------------------------------------------------------------------------------------------------------------
templateExcelFile 是存在的文件,我debug并输出文件名和路径都是对的。
workbook = Workbook.getWorkbook(file);
然后这步骤就不行,就出错.
帮帮我吧
QQ 15159909
e-mail : [email protected]
如果文档能读到,系统不一样的话就是编码问题了,linux下默认是utf-8编码(或者安装时看你默认编码是)
exception是不会骗人的
你把path打出来对比下
linux好像是export/home/xxx
log.info(testfile ==null); // false ,不为空
log.info(testfile.getName()); //loanInfoSource.xls
log.info(testfile.getPath()); ///home/gdxy/apache-tomcat-6.0.10/webapps/bploan/xlsdown/loanInfoSource.xls
代码后面就是打印出来的 我加上去的文件名是:
loanInfoSource.xls
路径是 /home/gdxy/apache-tomcat-6.0.10/webapps/bploan/xlsdown/loanInfoSource.xls
我使用了另一种技术实现了。
有兴趣想讨论的朋友 请加我QQ 15159909 。
msn: [email protected]
126
---------------------------------------------------