Grailsサンプル-Excelドキュメントのエクスポート
3073 ワード
プログラムはただ1つのページだけあって、ダウンロードのリンクをクリックして、Excelのドキュメントをダウンロードして、このドキュメントは2つのsheetがあって、この2つのsheetと中の内容はJExcelApiを使って生成しました.ダウンロードページ を表示
ダウンロードページのcontrollerとviewを追加
SampleExcelController .groovy
index.gsp JExcelApiライブラリファイル を導入
config/BuildConfig.groovyにjexcelapiのパッケージファイルを導入 Excelドキュメントダウンロード 次のコードは、Excelドキュメントを生成し、ダウンロードするために使用されます.知識点 1.次のコードは、ダウンロードするドキュメントのタイプとファイル名をブラウザに伝えます.
2.WritableWorkbookはExcelドキュメントのインスタンスを作成するために使用され、response.outputStream応答により、このドキュメントはサーバ側に保存されるのではなく、ブラウザに直接送信されることを示します.
3.WritableSheetの2番目のパラメータはsheetのインデックスで、0は1番目の
4.addCellの1番目と2番目のパラメータは、Excelテーブルの座標値です.備考 上記のコードは、プラグインを使用しないでExcelドキュメントをどのように生成するかを簡単に紹介しているだけで、自分のプロジェクトの必要に応じて使用を変更することができます.ここは完全なコードダウンロードアドレスです
ダウンロードページのcontrollerとviewを追加
SampleExcelController .groovy
package com.tutorial
class SampleExcelController {
def index() { }
}
index.gsp
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main"/>
<title>Simple Chat</title>
</head>
<body>
<g:link action="downloadSampleExcel">Download Sample Excel</g:link>
</body>
</html>
config/BuildConfig.groovyにjexcelapiのパッケージファイルを導入
dependencies {
runtime 'net.sourceforge.jexcelapi:jxl:2.6.12'
}
package com.tutorial
import jxl.Workbook
import jxl.write.Label
import jxl.write.WritableSheet
import jxl.write.WritableWorkbook
class SampleExcelController {
def index() { }
def downloadSampleExcel() {
response.setContentType('application/vnd.ms-excel')
response.setHeader('Content-Disposition', 'Attachment;Filename="example.xls"')
WritableWorkbook workbook = Workbook.createWorkbook(response.outputStream)
WritableSheet sheet1 = workbook.createSheet("Students", 0)
sheet1.addCell(new Label(0,0, "First Name"))
sheet1.addCell(new Label(1,0, "Last Name"))
sheet1.addCell(new Label(2,0, "Age"))
sheet1.addCell(new Label(0,1, "John"))
sheet1.addCell(new Label(1,1, "Doe"))
sheet1.addCell(new Label(2,1, "20"))
sheet1.addCell(new Label(0,2, "Jane"))
sheet1.addCell(new Label(1,2, "Smith"))
sheet1.addCell(new Label(2,2, "18"))
WritableSheet sheet2 = workbook.createSheet("Courses", 1)
sheet2.addCell(new Label(0,0, "Course Name"))
sheet2.addCell(new Label(1,0, "Number of units"))
sheet2.addCell(new Label(0,1, "Algebra"))
sheet2.addCell(new Label(1,1, "3"))
sheet2.addCell(new Label(0,2, "English Grammar"))
sheet2.addCell(new Label(1,2, "5"))
workbook.write();
workbook.close();
}
}
response.setContentType('application/vnd.ms-excel')
response.setHeader('Content-Disposition', 'Attachment;Filename="example.xls"')
2.WritableWorkbookはExcelドキュメントのインスタンスを作成するために使用され、response.outputStream応答により、このドキュメントはサーバ側に保存されるのではなく、ブラウザに直接送信されることを示します.
3.WritableSheetの2番目のパラメータはsheetのインデックスで、0は1番目の
4.addCellの1番目と2番目のパラメータは、Excelテーブルの座標値です.