簡體   English   中英

如何使用 Java 基於 CSV 文件創建 Excel 文件?

[英]How to create an Excel file based on CSV file using Java?

我需要使用 Java 在 CSV 文件的基礎上創建 XLS 文件。

請告訴我哪個 API 最好創建 excel 文件。

謝謝

我建議您使用Apache POI 框架(特別是HSSF / XSSF API )來寫出 XLS 文件。

為了讀取 CSV 文件,我建議您使用OpenCSV ,因為它會為您處理轉義字符等。

此處的 POI 示例和此處的 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();
    }
}

在此處輸入圖像描述在此處輸入圖像描述

Apache POI是一個可以處理各種微軟辦公文檔的庫,包括 MS Excel。 您可以使用簡單的 java 代碼讀取 csv 文件的內容,並使用該庫創建並保存 MS Excel 文檔。

有很多檢查

http://jexcelapi.sourceforge.net/

你會得到很多選擇。 只是谷歌。

使用 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 的 Java 您可以使用此組件打開 CSV 文件並使用 Java 將其保存為 XLS 文件 它還可以幫助您使用不同的 Excel 文件版本。

披露:我在 Aspose 擔任開發人員布道師。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM