这几天一直在用poi导出Excel 后来客户说要生成一个cvs的格式的一个订单,我一打开这个文件发现csv格式的跟excel格式奇像,我屁颠屁颠的写完了一大堆XSSFWorkbook 然后XSSFSheet 接着XSSFRow 最后XSSFCell 都写完的时候检查了一遍发现没什么问题。好生成的文件一打开就提示格式不对,然后强势打开,发现嘿 数据都是对的,但是总是觉得这个文件生成的有问题,就到网上查了一下,我,那个csv格式的数据格式居然是文本格式。我汗。。。。。
然后果断的改成文本格式的输出,ok问题解决了,呵呵希望朋友们不要步我的后尘。。。。。以下是java代码。
String key = keyIteartor.next();
List<WarehouseEntry> list = map.get(key);
File file = new File("c:\\"+list.get(0).getCommodityCodeId()+"edi.csv");
FileWriter fos = new FileWriter(file);
fos.write("head,3MINTRA,PRODUCTION,ORDER,,,\r\n");
StringBuffer srow = new StringBuffer("order,");
srow.append(list.get(0).getGroupName()+"00"+list.get(0).getCommodityCodeId()+",");
srow.append(new SimpleDateFormat("yyyyMMdd").format(new Date())+",");
Group group = list.get(0).getGroup();
srow.append(group.getCustomer()+",");
srow.append(group.getEdIName()+",");
List <UserInfo> userList = userDao.getUserByRole(Constants.ROLE_Store_Manager_NUMBER);
srow.append(userList.get(0).getEmail());
String ediCode = "";
srow.append(ediCode+"\r\n");
fos.write(srow.toString());
for(int i = 0;i<list.size();i++){
WarehouseEntry we = list.get(i);
StringBuffer data = new StringBuffer("line,");
data.append((i+1)+",");
data.append(we.getStockNo()+",");
data.append(we.getReceivableQty()+"\r\n");
fos.write(data.toString());
}
fos.flush();
fos.close();