如何转换分隔的选项卡";。txt";将文件保存到Excel中;。xls";使用java格式化?
我有498个文本文件,它们来自于网站上的表单,我想用java将它们全部转换成Excel标准(.xls)格式如何转换分隔的选项卡";。txt";将文件保存到Excel中;。xls";使用java格式化?,java,type-conversion,text-files,xls,Java,Type Conversion,Text Files,Xls,我有498个文本文件,它们来自于网站上的表单,我想用java将它们全部转换成Excel标准(.xls)格式 我每个月都要用同样数量的文件进行转换,手动转换每个文件不少于10秒,最多可以乐观地说是1 H23M的不便,因此加载每个文件并点击“save_as”(手动或机器人)的方法,是禁止的。您可以使用该项目在java中生成xls文件。Excel可以将它们作为csv文件加载,只需指定字段分隔符为选项卡我将有一个数组循环遍历您想要的所有文件。您可以将.csv文件作为标准文本文件读入,将每一行存储在一个数
我每个月都要用同样数量的文件进行转换,手动转换每个文件不少于10秒,最多可以乐观地说是1 H23M的不便,因此加载每个文件并点击“save_as”(手动或机器人)的方法,是禁止的。您可以使用该项目在java中生成xls文件。Excel可以将它们作为csv文件加载,只需指定字段分隔符为
选项卡
我将有一个数组循环遍历您想要的所有文件。您可以将.csv文件作为标准文本文件读入,将每一行存储在一个数组中,然后循环创建excel工作表
现在我从来没有从头创建过excel工作簿,但我已经编辑过了。我写了以下内容。这将循环遍历目录中的所有文件,并将其扫描入目录。它只是将每个文件中的数据一个接一个地放在第一张纸上。使用迭代器会很好,但我允许您这样做。:)
测试了它,并使用tab作为分隔符。您只需要指定CSV文件所在的目录。您能告诉我如何正确进行转换吗?不确定如何继续,因为ApachePOI的javadoc上既有“.xls”转换功能,也有“.xls”创建功能,我在google上得到的结果好坏参半。Java或伪代码示例将是一个不错的额外示例。Nevermind刚刚发现了两个教程,填补了poi的javadocs中对我来说没有意义的空白。对于有相同问题的人,请参考:使用VBA直接在Excel中执行所有这些操作比学习POI、编写Java代码等更简单。。。
public void convertCSV(File dir) throws IOException {
// Gets the CSV files.
File[] csvFiles = dir.listFiles();
// Sets up the Workbook and gets the 1st (0) sheet.
File excelFile = new File("H:\\yourOutput.xls");
InputStream input = new FileInputStream(excelFile);
HSSFWorkbook workbook = new HSSFWorkbook(input);
HSSFSheet sheet = workbook.getSheetAt(0);
int rowNo = 0;
int columnNo = 0;
// Loop through the files.
for(File file : csvFiles) {
Scanner scanner = new Scanner(file);
while(scanner.hasNextLine()) {
String line = scanner.nextLine();
// Gets the row and if it doesn't exist it will create it.
Row tempRow = sheet.getRow(rowNo);
if(tempRow == null)
tempRow = sheet.createRow(rowNo);
Scanner lineScanner = new Scanner(line);
lineScanner.useDelimiter("\t");
// While there is more text to get it will loop.
while(lineScanner.hasNext()) {
// Gets the cell in that row and if it is null then it will be created.
Cell tempCell = tempRow.getCell(columnNo, Row.CREATE_NULL_AS_BLANK);
String output = lineScanner.next();
// Write the output to that cell.
tempCell.setCellValue(new HSSFRichTextString(output));
columnNo++;
}
// Resets the column count for the new row.
columnNo = 0;
rowNo++;
}
}
// Writes the file and closes everything.
FileOutputStream out = new FileOutputStream(excelFile);
workbook.write(out);
input.close();
out.close();
}