レポート出力は、Javaアプリケーション開発にしばしば関与するコンテンツであり、一般的なレポートはしばしば普遍性を欠いており、ユーザーがパーソナライズされた編集に便利ではありません。クロスプラットフォーム機能により、JavaプログラムはExcelを直接操作することはできません。したがって、この記事では、Excelの読み取りとインポートのためのPOIの視線Javaプログラムについて説明します。
プロジェクト構造:
java_poi_excel
使用されるExcelファイル:
XLS
xlsmain .javaクラス
//このクラスには主な方法があり、これは主にプログラムの実行を担当しています。同時に、このクラスには、POI(バージョン2003)のExcel(version.io.io.fileinputStream; import java.io.ioexception; Import java.inputstream; Import java.util.arraylist; Import java.util.list; Import Java.util.list; Import; Import; apache.poi.hssf.usermodel.hssfcell; Import org.apache.poi.hssf.usermodel.hssfrow; import org.apache.poi.hssf.usermodel.hssfsheet; Import org.apache.apache.hspoi.hsf.usermodel.hsfbook; /** * * @author hongten </br> * * */public class xlsmain {public static void main(string [] args)throws ioexception {xlsmain xlsmain = new xlsmain(); xlsdto xls = null;リスト<xlsdto> list = xlsmain.readxls(); try {xlsdto2excel.xlsdto2excel(list); } catch(Exception e){e.printstacktrace(); } for(int i = 0; i <list.size(); i ++){xls =(xlsdto)list.get(i); System.out.println(xls.getxh() + "" + xls.getxm() + "" + xls.getyxsmc() + "" + xls.getkcm() + "" + xls.getkcm() + "" + xls.getcj()); }}/*** xlsファイルのコンテンツを読み取ります** @returnリスト<xlsdto> object* @throws ioexception* input/output(i/o)exception*/private list <xlsdto> readxls()throws ioexception {inputstream is = new fileinputstream( "pldrxkxxmb.xls"); hssfworkbook hssfworkbook = new hssfworkbook(is); xlsdto xlsdto = null;リスト<xlsdto> list = new arraylist <xlsdto>(); //(int numsheet = 0; numsheet <hssfworkbook.getNumberofsheets(); numsheet ++){hssfsheet hssfsheet = hssfworkbook.getsheetat(numsheet); if(hssfsheet == null){続行; } //ループ行の行(int rownum = 1; rownum <= hssfsheet.getlastrownum(); rownum ++){hssfrow hssfrow = hssfsheet.getrow(rownum); if(hssfrow == null){継続; } xlsdto = new xlsdto(); //ループ列セル// 0学生番号1名2カレッジ3コース名4スコア// if(xh == null){続行; } xlsdto.setxh(getValue(xh)); HSSFCELL XM = HSSFROW.GETCELL(1); if(xm == null){継続; } xlsdto.setxm(getValue(xm)); HSSFCELL YXSMC = HSSFROW.GETCELL(2); if(yxsmc == null){続行; } xlsdto.setyxsmc(getValue(yxsmc)); hssfcell kcm = hssfrow.getcell(3); if(kcm == null){続行; } xlsdto.setkcm(getValue(kcm)); HSSFCELL CJ = HSSFROW.GETCELL(4); if(cj == null){続行; } xlsdto.setcj(float.parsefloat(getValue(cj))); list.add(xlsdto); }} return list; } / ** * excelテーブルで値を取得 * * @param hssfcell * excelのすべてのグリッド * excelの各グリッドの@return値 * / @suppresswarnings( "static-access")プライベートストリングgetValue(hssfcell hssfcell){if(hssfcell.getcelltype()= = = = hssfcell.cell_type_boolean){// boolean型の値を返してくださいreturn string.valueof(hssfcell.getbooleancellvalue()); } else if(hssfcell.getCelltype()== hssfcell.cell_type_numeric){// numeric型の値を返してくださいreturn string.valueof(hssfcell.getnumericcellvalue()); } else {//文字列タイプの値を返しますreturn string.valueof(hssfcell.getStringCellValue()); }}}xlsdto2excel.javaクラス
//このクラスは、主にExcel(2003バージョン)にデータを挿入する責任がありますjava.io.fileoutputStream; Import java.outputStream; Import java.util.list; import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRichTextString;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;パブリッククラスxlsdto2excel { / ** * * @param xls * xlsdtoエンティティクラスのオブジェクト * @throws例外 * excel * / public static void xlsdto2excel(list <xlsdto> xls)スロー例外{// Colunns int int int columnns int countcount countcountcountcountcountcountcountcolnnumnum = xls. // Excelドキュメントを作成するhssfworkbook hwb = new hssfworkbook(); xlsdto xlsdto = null; //シートは作業ページhssfsheetシート= hwb.createsheet( "pldrxkxxmb"); hssfrow firstow = sheet.createrow(0); // subscript 0 hssfcell [] firstcell = new hssfcell [countcolumnnum]で行を開始します。 string [] names = new String [CountColumnnum];名前[0] = "学生番号";名前[1] = "name";名前[2] = "college";名前[3] = "コース名";名前[4] = "スコア"; for(int j = 0; j <countcolumnnum; j ++){firstCell [j] = firstow.createcell(j); firstCell [j] .setCellValue(new hssfrichtextString(names [j])); } for(int i = 0; i <xls.size(); i ++){// hssfrow row = sheet.createrow(i+1)の行を作成します。 //すべてのレコードを挿入するxlsdto = xls.get(i); for(int colu = 0; colu <= 4; colu ++){// hssfcell xh = row.createcell(0); xh.setCellValue(xlsdto.getxh()); hssfcell xm = row.createcell(1); xm.setCellValue(xlsdto.getxm()); hssfcell yxsmc = row.createcell(2); yxsmc.setcellvalue(xlsdto.getyxsmc()); hssfcell kcm = row.createcell(3); kcm.setcellvalue(xlsdto.getkcm()); hssfcell cj = row.createcell(4); cj.setCellValue(xlsdto.getcj());(xlsdto.getMessage()); }} //ファイル出力ストリームを作成し、出力スプレッドシート出力ストリームを準備する= new fileoutputStream( "poi2excel/pldrxkxxmb.xls"); hwb.write(out); out.close(); System.out.println( "データベースエクスポートの成功"); }}xlsdto .javaクラス
//このクラスは、エンティティクラスのパブリッククラスxlsdto {/***コース選択番号*/private integer xkhです。 / ***学生番号*/ private string xh; / ***名前*/プライベート文字列XM; / *** COLLEGE*/ PRIVATE STRING YXSMC; / ***コース番号*/ private Integer KCH; / ***コース名*/ private string kcm; / ***スコア*/プライベートフロートCJ; public Integer getxkh(){return xkh; } public void setxkh(integer xkh){this.xkh = xkh; } public string getxh(){return xh; } public void setxh(string xh){this.xh = xh; } public string getxm(){return xm; } public void setxm(string xm){this.xm = xm; } public string getyxsmc(){return yxsmc; } public void setyxsmc(string yxsmc){this.yxsmc = yxsmc; } public Integer getkch(){return kch; } public void setkch(integer kch){this.kch = kch; } public string getKcm(){return kcm; } public void setkcm(string kcm){this.kcm = kcm; } public float getcj(){return cj; } public void setcj(float cj){this.cj = cj; }}バックグラウンド出力:
データベースのエクスポートに正常に
1.0 Hongten School of Information Technology Computer Networkアプリケーションの基本80.0
2.0 Wangwu Information Technology College Computer Networkアプリケーションの基本81.0
3.0 Li Shengji情報技術学校コンピューターネットワークアプリケーションの基本82.0
4.0クラス5情報技術大学のコンピューターネットワークアプリケーション83.0
5.0 CAI SHIYUN SCHOOL of Information Technology Computer Networkアプリケーションの基本84.0
上記はこの記事のすべての内容です。私はそれがすべての人の学習に役立つことを願っています、そして、私は誰もがwulin.comをもっとサポートすることを願っています。