web-dev-qa-db-ja.com

JavaでExcelファイルを作成

Javaでテキストファイルを書くのと同じように、Excelファイルを作成してデータを書きたいです。ファイル拡張子を.txtから.xlsに変更しようとしました。しかし、Excelファイル内の文字を太字にしたいです。どうやってやるの?

JXL APIを使用してみましたが、ラベルを作成するたびにラベルを追加しません。テーブルの行と列を編集できませんか?

41
guna
//Find jar from here "http://poi.Apache.org/download.html"
import  Java.io.*;
import  org.Apache.poi.hssf.usermodel.HSSFSheet;
import  org.Apache.poi.hssf.usermodel.HSSFWorkbook;
import  org.Apache.poi.hssf.usermodel.HSSFRow;

public class CreateExlFile{
    public static void main(String[]args) {
        try {
            String filename = "C:/NewExcelFile.xls" ;
            HSSFWorkbook workbook = new HSSFWorkbook();
            HSSFSheet sheet = workbook.createSheet("FirstSheet");  

            HSSFRow rowhead = sheet.createRow((short)0);
            rowhead.createCell(0).setCellValue("No.");
            rowhead.createCell(1).setCellValue("Name");
            rowhead.createCell(2).setCellValue("Address");
            rowhead.createCell(3).setCellValue("Email");

            HSSFRow row = sheet.createRow((short)1);
            row.createCell(0).setCellValue("1");
            row.createCell(1).setCellValue("Sankumarsingh");
            row.createCell(2).setCellValue("India");
            row.createCell(3).setCellValue("[email protected]");

            FileOutputStream fileOut = new FileOutputStream(filename);
            workbook.write(fileOut);
            fileOut.close();
            workbook.close();
            System.out.println("Your Excel file has been generated!");

        } catch ( Exception ex ) {
            System.out.println(ex);
        }
    }
}
80
Sankumarsingh

Apache POI を使用して、ネイティブバイナリxlsファイルを作成できます。

または、 JExcelApi を使用することもできます。これは、覚えている限りではもう少し軽量で、Java Excel用ライブラリです。

30
huseyint

Apache POIのExcel生成についての公正な警告...(これは古い投稿であることは知っていますが、誰かが私と同じようにもう一度調べる場合に重要です)

おそらく2006年までに解決されたと思われるメモリリークの問題がありましたが、ごく最近ではまだ発生しています。大量のExcelの生成を自動化する場合(つまり、単一の大きなファイル、多数の小さなファイル、またはその両方を生成する場合)、別のAPIを使用することをお勧めします。それか、JVMスタックサイズを途方もない割合に増やし、実際に多くの異なる文字列を操作しないことがわかっている場合は、インターン文字列を調べます(もちろん、インストリング文字列は、文字列が異なると、プログラムクラッシュメモリの問題がまったく異なります。そのため、そのルートに進む前に考慮してください)。

9
root
File fileName = new File(".....\\Fund.xlsx");

public static void createWorkbook(File fileName) throws IOException {
    try {
        FileOutputStream fos = new FileOutputStream(fileName);
        XSSFWorkbook  workbook = new XSSFWorkbook();            

        XSSFSheet sheet = workbook.createSheet("fund");  

        Row row = sheet.createRow(0);   
        Cell cell0 = row.createCell(0);
        cell0.setCellValue("Nav Value");

        Cell cell1 = row.createCell(1);

        cell1.setCellValue("Amount Change");       

        Cell cell2 = row.createCell(2);
        cell2.setCellValue("Percent Change");

        workbook.write(fos);
        fos.flush();
        fos.close();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
6
satender

フラットファイルでは、メタ情報を提供できません。

必要な情報を含むHTMLテーブルを作成し、代わりにExcelに読み取らせることをお勧めします。その後、<b>タグを使用して、求めていることを実行できます。

Excelファイルをより簡単に作成するためのAPIを作成しました。

Excelの作成-テンプレートからのExcelの作成

インスタンス化時に必要な値を設定してからexecute()を呼び出すだけで、目的の出力ディレクトリに基づいて作成されます。

ただし、これを使用する前に、新しく作成したExcelファイルのテンプレートとして使用するExcelテンプレートが必要です。

また、プロジェクトのクラスパスに Apache POI が必要です。

4
Erieze Lagera

ファイルの拡張子を変更すると、notは内容を変更しません。拡張機能は単なるラベルです。

Javaを使用してExcelスプレッドシートで作業する場合は、 Apache POI ライブラリを参照してください。

3
aberrant80

また、 [〜#〜] jxls [〜#〜] を使用しました。これは、正しい構文のマップおよびテンプレートExcelとしてデータを受け取り、正しく読み込まれたファイルを返します。すべてのセルのデータは、可視性publicを持つJavaBeanでなければなりません。

複数のシートにデータを挿入する必要があるかどうかは心配しません。この場合、 [〜#〜] poi [〜#〜] を使用しました。

0
alepuzio

[〜#〜] poi [〜#〜] を使用してスプレッドシートを作成し、セルをフォーマットするには、 Working with Fonts の例を参照し、以下を使用します。

font.setBoldweight(Font.BOLDWEIGHT_BOLD);

POIは非常にうまく機能します。できないこともありますが(VBAマクロの作成など)、マクロを使用してスプレッドシートの読み取り/書き込みを行うため、適切なテンプレートシートを作成し、それを読み取ってPOIで操作してから書き出すことができます。

0
Brian Agnew