この API を使用すると、Windows 以外のオペレーティング システムでも、純粋な Java アプリケーションを通じて Excel データ テーブルを処理できます。 Java で記述されているため、Web アプリケーションで JSP およびサーブレットを介して API を呼び出し、Excel データ テーブルにアクセスできます。
次のようにコードをコピーします。
パッケージcom.yonyou.test;
java.io.ファイルをインポートします。
インポート java.io.IOException;
jxl.Workbook をインポートします。
jxl.format.Alignment をインポートします。
jxl.format.Border をインポートします。
jxl.format.BorderLineStyle をインポートします。
jxl.format.Colorをインポートします。
jxl.format.UnderlineStyle をインポートします。
jxl.write.Label をインポートします。
jxl.write.NumberFormats をインポートします。
jxl.write.WritableCellFormat をインポートします。
jxl.write.WritableFont をインポートします。
jxl.write.WritableSheetをインポートします。
jxl.write.WritableWorkbook をインポートします。
インポート jxl.write.WriteException;
jxl.write.biff.RowsExceededException; をインポートします。
パブリック クラス JxlTable {
プライベート最終静的 JxlTable jxlTable = new JxlTable();
パブリック静的JxlTable getInstance() {
jxlTable を返します。
}
パブリック ZXlTable() {
}
public boolean createTable(String header, String[] body, String filePath) {
ブール値 createFlag = true;
WritableWorkbook ブック;
試す {
//パスに基づいて Excel ファイルを生成します
book = Workbook.createWorkbook(新しいファイル(ファイルパス));
//「Table」という名前のシートを作成します
WritableSheet シート = book.createSheet("テーブル", 0);
//列幅を設定しません
Sheet.setColumnView(1, 5);
//シート全体のグリッド線を削除します
sheet.getSettings().setShowGridLines(false);
ラベル tempLabel = null;
// ヘッダー出力
String[] headerArr = header.split(",");
int headerLen = headerArr.length;
// ヘッダーの内容を書き込むループ
for (int i = 0; i < headerLen; i++) {
tempLabel = 新しいラベル(1 + i, 1, headerArr[i],
getHeaderCellStyle());
Sheet.addCell(tempLabel);
}
// テーブル本体の出力
int bodyLen = body.length;
// テーブル本体の内容を書き込むループ
for (int j = 0; j < bodyLen; j++) {
String[] bodyTempArr = body[j].split(",");
for (int k = 0; k < bodyTempArr.length; k++) {
WritableCellFormat tempCellFormat = null;
tempCellFormat = getBodyCellStyle();
if (tempCellFormat != null) {
if (k == 0 || k == (bodyTempArr.length - 1)) {
tempCellFormat.setAlignment(Alignment.CENTRE);
}
}
tempLabel = 新しいラベル(1 + k, 2 + j, bodyTempArr[k],
tempCellFormat);
Sheet.addCell(tempLabel);
}
}
book.write();
book.close();
} キャッチ (IOException e) {
createFlag = false;
System.out.println("EXCEL 作成に失敗しました!");
e.printStackTrace();
} catch (RowsExceededException e) {
createFlag = false;
System.out.println("EXCELユニット設定の作成に失敗しました!");
e.printStackTrace();
} catch (WriteException e) {
createFlag = false;
System.out.println("EXCELの書き込みに失敗しました!");
e.printStackTrace();
}
createFlagを返します;
}
public WritableCellFormat getHeaderCellStyle() {
WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10,
WritableFont.BOLD、false、UnderlineStyle.NO_UNDERLINE);
WritableCellFormat headerFormat = new WritableCellFormat(
NumberFormats.TEXT);
試す {
//フォント設定を追加
headerFormat.setFont(フォント);
//セルの背景色を設定します: ヘッダーは黄色です
headerFormat.setBackground(Colour.YELLOW);
//ヘッダーテーブルの境界線のスタイルを設定します
//テーブルの線全体が太くて黒い
headerFormat.setBorder(Border.ALL, BorderLineStyle.THICK,
カラー.ブラック);
//ヘッダーの内容は中央に横に表示されます
headerFormat.setAlignment(Alignment.CENTRE);
} catch (WriteException e) {
System.out.println("ヘッダーセルのスタイル設定に失敗しました!");
}
headerFormat を返します。
}
public WritableCellFormat getBodyCellStyle() {
WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10,
WritableFont.NO_BOLD、false、UnderlineStyle.NO_UNDERLINE);
WritableCellFormat bodyFormat = new WritableCellFormat(font);
試す {
//セルの背景色を設定します: テーブル本体は白です
bodyFormat.setBackground(Colour.WHITE);
//ヘッダーテーブルの境界線のスタイルを設定します
//テーブルの線全体が細くて黒い
ボディフォーマット
.setBorder(Border.ALL, BorderLineStyle.THIN, Color.BLACK);
} catch (WriteException e) {
System.out.println("表本体のセルのスタイル設定に失敗しました!");
}
bodyFormat を返します。
}
public static void main(String[] args) {
文字列ヘッダー = "いいえ、名前、性別、年齢";
String[] 本体 = 新しい String[4];
body[0] = "1、欧陽峰、男性、68";
body[1] = "2、黄耀士、男性、67";
body[2] = "3、香港気功、男性、70";
body[3] = "4、郭晶、男性、32";
文字列ファイルパス = "e:/test.xls";
JxlTable testJxl = JxlTable.getInstance();
ブール値フラグ = testJxl.createTable(ヘッダー、本文、ファイルパス);
if (フラグ) {
System.out.println("テーブルが正常に作成されました!!");
}
}
}
ステップバイステップの説明:
Excelファイルを読み込む
Excel ファイルを読み取るには、まず単語帳を作成する必要があります。
次のようにコードをコピーします。
ワークブック wb=Workbook.getWorkbook(ファイル file);
ワークブック wb=Workbook.getWorkbook(InputStream は);
次に、そのワークシートを取得できます。
次のようにコードをコピーします。
Sheet[]sheets=wb.getSheets() //すべてのワークシートを取得します。
Sheetsheet=wb.getSheet(0); //最初のワークシートを取得することを示します。
最後に、ワークシート内の特定のセルの値を取得できます。
次のようにコードをコピーします。
Cell cell=sheet.getCell(0,0); //1列目、1行目のデータを取得します。最初のパラメータは列です
String value=cell.getContents(); //セルの値を文字列形式で取得します。
String type=cell.getType(); //セルのデータ型を取得します。
ワークブックのワークフローを閉じます。
Excel スプレッドシート データの処理が終了したら、必ず close() メソッドを使用して以前に作成したオブジェクトを閉じ、データ テーブルの読み取りプロセスで占有されていたメモリ領域を解放してください。これは、大量のデータを読み取る場合に特に重要です。 。次のコード スニペットを参照してください。
次のようにコードをコピーします。
wb.close();
注: Excel を閉じることができるのは、操作が完了した後のみです。Sheet s=wb.getSheet(0) を呼び出すと null になります。
一般的に使用される方法の紹介:
Workbookクラスが提供するメソッド
1. int getNumberOfSheets()
ワークブック内のワークシートの数を取得します。例:
次のようにコードをコピーします。
jxl.Workbook rwb = jxl.Workbook.getWorkbook(新しいファイル(ソースファイル));
int シート = rwb.getNumberOfSheets();
2. Sheet[] getSheets()
ワークブック内の Sheet オブジェクトの配列を返します。例:
次のようにコードをコピーします。
jxl.Workbook rwb = jxl.Workbook.getWorkbook(新しいファイル(ソースファイル));
Sheet[] シート = rwb.getSheets();
Sheet インターフェイスによって提供されるメソッド
1.文字列getName()
シートの名前を取得します。例:
次のようにコードをコピーします。
jxl.Workbook rwb = jxl.Workbook.getWorkbook(新しいファイル(ソースファイル));
jxl.Sheet rs = rwb.getSheet(0);
文字列シート名 = rs.getName();
2. int getColumns()
Sheet テーブルに含まれる列の合計数を取得します。例:
次のようにコードをコピーします。
jxl.Workbook rwb = jxl.Workbook.getWorkbook(新しいファイル(ソースファイル));
jxl.Sheet rs = rwb.getSheet(0);
int rsColumns = rs.getColumns();
3. Cell[] getColumn(int 列)
特定の列内のすべてのセルを取得し、セル オブジェクトの配列を返します。 例:
次のようにコードをコピーします。
jxl.Workbook rwb = jxl.Workbook.getWorkbook(新しいファイル(ソースファイル));
jxl.Sheet rs = rwb.getSheet(0);
Cell[] セル = rs.getColumn(0);
4. int getRows()
Sheet テーブルに含まれる行の合計数を取得します。例:
次のようにコードをコピーします。
jxl.Workbook rwb = jxl.Workbook.getWorkbook(新しいファイル(ソースファイル));
jxl.Sheet rs = rwb.getSheet(0);
int rsRows = rs.getRows();
5. Cell[] getRow(int row)