ホームページ  >  記事  >  Java  >  JavaはExcelを読み込みます

JavaはExcelを読み込みます

大家讲道理
大家讲道理オリジナル
2017-08-19 13:49:092068ブラウズ

JavaはExcelテーブルを読み取ります

Excelテーブルを読み取るにはPoi技術が一般的に使用されますが、この技術は何ですか?

Apache POIとは何ですか?

Apache POI は、プログラマーが Java プログラムを使用して MS Office ファイルを作成、変更、表示できるようにする人気の API です。 Apache Software Foundation によって開発されたこのオープン ソース ライブラリは、Java を使用して Microsoft Office ファイルの設計や変更を配布します。これには、ユーザー入力データまたはファイルを MS Office ドキュメントにデコードするためのクラスとメソッドが含まれています。

Apache POI

Apache POI は、Apache Software Foundation によって提供される 100% オープンソース ライブラリです。ほとんどの中小規模のアプリケーション開発は、主に Apache POI (HSSF + XSSF) に依存しています。 Excel ライブラリのすべての基本機能をサポートしていますが、レンダリングとテキスト抽出がその主な機能です。

JavaはExcelを読み込みます

Workbook

これは、Excel ワークブックを作成または維持するすべてのクラスのスーパー インターフェイスです。これは org.apache.poi.ss.usermodel パッケージに属します。このインターフェイスを実装するクラスは次の 2 つです:

  • HSSFWorkbook: このクラスには、.xls 形式の Microsoft Excel ファイルを読み書きするためのメソッドがあります。 Microsoft Office97-2003バージョンと互換性があります。

  • XSSFWorkbook : このクラスには、.xls または .xlsx 形式の Microsoft Excel および OpenOffice XML ファイルを読み書きするためのメソッドがあります。 MS-Office バージョン 2007 以降と互換性があります。

HSSFWorkbook

これは、org.apache.poi.hssf.usermodel パッケージの高レベルのクラスです。 Excel ファイルの .xls 形式の Workbook インターフェイスを実装します。このクラスのいくつかのメソッドとコンストラクターを以下に示します。

クラスのコンストラクター

S.No. コンストラクターと説明
1

HSSFWorkbook()

新しいHSSFWorkbookオブジェクトを最初から作成する場合。

2

HSSFWorkbook(DirectoryNode directory, boolean prepareNodes)

特定のディレクトリに新しい HSSFWworkbook オブジェクトを作成します。

3

HSSFWorkbook(DirectoryNode directory, POIFSFileSystem fs, boolean prepareNodes)

POIFSFileSystem オブジェクトと特定のディレクトリを指定すると、指定されたワークブックを読み取るための SSFWorkbook オブジェクトを作成します。

4

HSSFWorkbook(java.io.InputStream s)

入力ストリームを使用して新しい HSSFWorkbook オブジェクトを作成する場合。

5

HSSFWorkbook(java.io.InputStream s, boolean prepareNodes)

入力ストリーム上にPOIファイルシステムを構築します。

6

HSSFWorkbook(POIFSFileSystem fs)

POIFSFileSystem オブジェクトから構築された新しい HSSFWorkbook オブジェクトを使用する場合。

7

HSSFWorkbook(POIFSFileSystem fs, boolean prepareNodes)

POIFSFileSystem オブジェクトを指定すると、指定されたワークブックの読み取り中に新しい HSSFWorkbook オブジェクトを作成します。

これらの構造内の共通パラメータ:

  • directory : これは、POI ファイルシステムから処理されるディレクトリです。

  • fs: ブックストリームのPOIを含むファイルシステムです。

  • preservenodes : これは、マクロなどの他のノードを保持するかどうかを決定するオプションのパラメーターです。すべてのPOIFileSystemをメモリに保存するため(設定されている場合)、大量のメモリを消費します。

注: HSSFWorkbook クラスには多くのメソッドが含まれていますが、これらは XLS 形式とのみ互換性があります。このチュートリアルでは、最新バージョンの Excel ファイル形式に焦点を当てます。したがって、HSSFWorkbook クラスのメソッドはここにはリストされていません。これらのクラスのメソッドが必要な場合は、https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html にある POI-HSSFWorkbook クラス API を参照してください。

高レベルおよび低レベルの Excel ファイル形式を表すクラスが使用されます。これは org.apache.xssf.usemodel パッケージに属し、Workbook インターフェイスを実装します。このクラスのメソッドとコンストラクターを以下に示します。

クラスのコンストラクター

S.No.コンストラクターと説明1XSSFWorkbook()2XSSFWorkbook(java.io.File file)3XSSFWorkbook(java.lang.String path) 指定されたファイルのフルパスを使用して XSSFWorkbook オブジェクトを構築します。

新しいXSSFworkbookオブジェクトを最初から作成します。

指定されたファイルから XSSFWorkbook オブジェクトを構築します。

4

Sheet

Sheet は org.apache.poi.ss.usermodel パッケージ内のインターフェースであり、特定の名前を持つ高レベルまたは低レベルのスプレッドシートを作成するすべてのクラスのスーパー インターフェースです。最も一般的なタイプのスプレッドシートはワークシートで、セルのグリッドとして表されます。

HSSFSheet

これは org.apache.poi.hssf.usermodel パッケージ内のクラスです。 Excel スプレッドシートを作成でき、シート モードとテーブル データ形式が可能です。

クラスのコンストラクター

S.No. コンストラクターと説明
1

HSSFSheet (HSSFWorkbookワークブック)

HSSFを呼び出して新しいHSSFSheetを作成しますワークブック 。

2

HSSFSheet(HSSFWorkbookワークブック、InternalSheetシート)

指定されたテーブルオブジェクトを表すHSSFSheetを作成します。

XSSFSheet

これは、Excel スプレッドシートの高レベル表現を表すカテゴリです。これは org.apache.poi.hssf.usermodel パッケージの下にあります。

クラスのコンストラクター

2
S.No. コンストラクターと説明
1

クラスメソッド

S.No.

メソッドと説明addMergedRegion(CellRangeAddress領域)結合されたセル範囲を追加します (これらのセルが結合されます) 1つを形成します)。 autoSizeColumn(int column)コンテンツに合わせて列幅を調整します。 iterator()このメソッドは、foreachループを可能にするrowIterator()のエイリアスですadd hyperHyperlink(XSSFHyperlink link) 登録Aこのワークシートのハイパーリンクのコレクション
1

2

3

4

このクラスの残りのメソッドについては、次の完全な API を参照してください:

https://poi.apache.org/apidocs/org/apache/ line poi/xssf/ usermodel/XSSFSheet.html.
これは org.apache.poi.ss.usermodel パッケージ内のインターフェースです。これは、行のスプレッドシートの高レベル表現です。これは、POI ライブラリ内のすべてのクラスを表すスーパー インターフェイスです。


XSSFRow

これは org.apache.poi.xssf.usermodel パッケージ内のクラスです。 Row インターフェイスを実装しているので、スプレッドシートに行を作成できます。このクラスのメソッドとコンストラクターを以下に示します。

クラスメソッド

S.No.

DescriptioncreateCell(int columnIndex)新しいセル行を作成して戻ります。 setHeight(ショートハイト)ショートユニットの高さを設定します。 Cell
1

2

このクラスの残りのメソッドについては、次のリンクを参照してください:

https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFRow.html
これは org.apache.poi.ss.usermodel パッケージのインターフェースです。これは、スプレッドシート内の行のセルを表すすべてのクラスのスーパーインターフェイスです。


セルは空白、数値、日付、エラーなどのさまざまな属性を使用できます。セルは行に追加される前に独自の (0 から始まる) 数値を持つ必要があります。

XSSFCell

これは org.apache.poi.xssf.usermodel パッケージ内のクラスです。セルインターフェースを実装します。これは、スプレッドシート内のセルの行を高レベルで表現したものです。

今、Javaを使用してExcelテーブルの読み取りを実装しています

コードの実装

public static void excel() throws Exception {        //用流的方式先读取到你想要的excel的文件
        FileInputStream fis=new FileInputStream(new File(System.getProperty("user.dir")+"/src/excel.xls"));        //解析excel
        POIFSFileSystem pSystem=new POIFSFileSystem(fis);        //获取整个excel
        HSSFWorkbook hb=new HSSFWorkbook(pSystem);
        System.out.println(hb.getNumCellStyles());        //获取第一个表单sheet
        HSSFSheet sheet=hb.getSheetAt(0);        //获取第一行
    int firstrow=    sheet.getFirstRowNum();    //获取最后一行
    int lastrow=    sheet.getLastRowNum();    //循环行数依次获取列数
        for (int i = firstrow; i  list=new ArrayList();            for (int j = firstcell; j <lastcell>0) {
                user.setUsername(list.get(1));
                user.setPassword(list.get(2));
            }
            BaseDAO dao=new BaseDAO();
            dao.save(user);
            System.out.println();
            }
        }
        fis.close();
    }</lastcell>

以上がJavaはExcelを読み込みますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Spring IOC容器次の記事:Spring IOC容器