【发布时间】:2011-09-24 05:13:03
【问题描述】:
我需要使用 Java 在 CSV 文件的基础上创建 XLS 文件。
请告诉我哪个 API 最适合创建 excel 文件。
谢谢
【问题讨论】:
我需要使用 Java 在 CSV 文件的基础上创建 XLS 文件。
请告诉我哪个 API 最适合创建 excel 文件。
谢谢
【问题讨论】:
我建议你使用Apache POI framework(特别是HSSF / XSSF API)来写出XLS文件。
对于读取 CSV 文件,我建议您使用 OpenCSV,因为它会为您处理转义字符等。
将来自here 的 POI 示例和来自here 的 OpenCSV 示例放在一起可以得到:
import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import au.com.bytecode.opencsv.CSVReader;
class Test {
public static void main(String[] args) throws IOException {
Workbook wb = new HSSFWorkbook();
CreationHelper helper = wb.getCreationHelper();
Sheet sheet = wb.createSheet("new sheet");
CSVReader reader = new CSVReader(new FileReader("data.csv"));
String[] line;
int r = 0;
while ((line = reader.readNext()) != null) {
Row row = sheet.createRow((short) r++);
for (int i = 0; i < line.length; i++)
row.createCell(i)
.setCellValue(helper.createRichTextString(line[i]));
}
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
}
}
【讨论】:
使用 Groovy,我会这样做:
// groovy to generate large csv file
def GROOVY_HOME = new File( System.getenv('GROOVY_HOME') )
if ( !GROOVY_HOME.canRead() ) {
println( "Missing environment variable GROOVY_HOME: '${GROOVY_HOME}'" )
System.exit(0)
}
File file = new File("csv.csv")
if ( file.exists() ) {
assert file.delete()
assert file.createNewFile()
}
boolean append = true
FileWriter fileWriter = new FileWriter(file, append)
BufferedWriter buffWriter = new BufferedWriter(fileWriter)
buffWriter.write "sdiType=ReferenceValue,,,\n"
buffWriter.write "ListName,ListStartDate,Value,ValueStartDate\n"
println( "Writing to file 'csv.csv'" )
def y = 5000
while ( y-- > 0 ) {
buffWriter.write "test" + y + ",1/1/2001,2008,1/1/2001\n"
}
buffWriter.flush()
buffWriter.close()
【讨论】:
你可以试试Aspose.Cells for Java。您可以将此组件用于open a CSV file 和save it as XLS file 使用Java。它还可以帮助您使用不同的 Excel 文件版本。
披露:我在 Aspose 担任开发布道师。
【讨论】:
Apache POI 是一个可以处理各种微软办公文档的库,包括MS Excel。您可以使用简单的 java 代码读取 csv 文件的内容,并使用该库创建和保存 MS Excel 文档。
【讨论】:
【讨论】: