Расширение файла для значений, разделенных табуляцией, которые могут быть открыты в Excel?
Я выводю файл с разделителями табуляции из моего веб-приложения, который должен быть открыт в Excel. Проблема в том, что.xls, кажется, не подходит для его открытия и редактирования, тогда Excel требуется какой-то другой формат, и если я изменю расширение на.tsv, тогда файл станет неизвестным для Excel (в Windows 7), а.csv для запятой. разделены. Можете ли вы посоветовать мне, какое расширение файла должно быть?
Это код, который выводит файл, и он работает. Просто я должен выбрать наиболее подходящее расширение для значений, разделенных табуляцией.
@RequestMapping(value = "/export", method = RequestMethod.GET)
@ResponseBody
public ModelAndView export(HttpServletResponse response) {
try {
String str = "";
Iterator<Individual> iterator = customerAccountService.getAllIndividuals().iterator();
while(iterator.hasNext()){
Individual individual = iterator.next();
str = str + individual.getId() + "\t" +individual.getIndividualName().getName() + "\t" + individual.getAddress().getStreetName() + "\n";
}
InputStream is = new ByteArrayInputStream(str.getBytes());
IOUtils.copy(is, response.getOutputStream());
response.setContentType("application/xls");
response.setHeader("Content-Disposition","attachment; filename=export.tsv");
response.flushBuffer();
} catch (IOException ex) {
//logger.info("Error writing file to output stream. Filename was '" + fileName + "'");
throw new RuntimeException("IOError writing file to output stream");
}
ModelAndView modelAndView = new ModelAndView(ViewName.MENU);
modelAndView.addObject(ObjectName.ADD_FORM, new LoginForm());
return modelAndView;
}
1 ответ
Положил
sep=\t
в качестве первой строки в вашем.csv-файле (да, тогда вы можете назвать его.csv). Это говорит Excel о том, каким должен быть символ-разделитель.
Обратите внимание, что на самом деле, если вы открываете.csv с помощью текстового редактора, он должен выглядеть так
sep= (an actual tabulator character here, it's just not visible...)