java excel 打不开_Java使用POI生成Excel文件后打不开的问题

在实际的工作中,有时会遇到获取数据后需要存入Excel文件的情况。但是,在生成Excel文件后,发现无法正常打开该文件。

例如:以当前的时间点为文件名,新生成一个Excel文件。先来看看下面一段代码。

public classcreateExcel {public static void main(String[] args) throwsIOException {

Date now=newDate();

SimpleDateFormat dateFormat= new SimpleDateFormat("yyyyMMddHHmmss");

String localname=dateFormat.format(now);

String xlsxPath= "F:\\20190507\\"+ localname + ".xlsx";

Workbook workBook= newXSSFWorkbook();

OutputStream fos= null;try{

fos= newFileOutputStream(xlsxPath);

}catch(FileNotFoundException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

workBook.write(fos);

fos.close();

}

}

有经验的同学看出什么问题来了吗?

这里在相应的路径下会生成Excel文件。但是,双击打开的时候,会出现下面的情形。

导致这个问题的原因是什么呢?

我们回过头来再看看之前的代码。好像是少了点什么吧。

我们实际在电脑中点击右键新生成一个Excel文件的时候,这个Excel文件会默认生成3个Sheet。而上面我们使用Java代码来生成Excel的时候,没有新建立Sheet的对象。这样,这个Excel文件中就是没有Sheet的。双击打开的时候就会报这个错误。

实际上,我们只要在上面的代码中,增加一个Sheet的对象,就可以正常打开Excel了。

public static void main(String[] args) throwsIOException {

Date now=newDate();

SimpleDateFormat dateFormat= new SimpleDateFormat("yyyyMMddHHmmss");

String localname=dateFormat.format(now);

String xlsxPath= "F:\\20190507\\"+ localname + ".xlsx";

Workbook workBook= newXSSFWorkbook();

OutputStream fos= null;try{

//增加一个Sheet的对象

Sheet sheet= workBook.createSheet("sheet1");

fos= newFileOutputStream(xlsxPath);

}catch(FileNotFoundException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

workBook.write(fos);

fos.close();

}

}

这样,即可正常打开Excel了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值