<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
    http://dev2dev.bea.com.cn/techdoc/20060517793.html


    WebLogic教程:在WebLogic Server中集成Apache Poi

    --Apache Jakarta POI項目提供了訪問和生成Excel文檔的組件

    時間:2006-05-17
    作者:Ajay VohraDeepak Vohra
    瀏覽次數(shù): 8856
    本文關鍵字:ApachePoiApache PoiWebLogic ServerExcel
    文章工具
    推薦給朋友 推薦給朋友
    打印文章 打印文章

      Apache Jakarta POI項目提供了用于訪問和生成Excel文檔的組件。POI HSSF API用于生成Excel Workbook以及將Excel電子表格添加到workbook。Excel電子表格由行和單元格組成。電子表格的頁面布局和字體也使用POI HSSF API進行設置。

      通常要求將數(shù)據(jù)庫表呈現(xiàn)在Excel電子表格中。同樣,開發(fā)人員的需求也可以保存到數(shù)據(jù)庫表中的Excel電子表格中。Apache POI HSSF項目旨在提供一個創(chuàng)建Excel電子表格的API。使用POI HSSF項目生成的Excel電子表格中的數(shù)據(jù)可以是XML文檔中的靜態(tài)數(shù)據(jù),或者是從一個數(shù)據(jù)庫中動態(tài)檢索到的數(shù)據(jù)。此外,Excel文檔也可以被轉(zhuǎn)換為XML文檔或者保存在數(shù)據(jù)庫中。在本教程中,我們將討論在WebLogic Server中從一個MySQL數(shù)據(jù)庫表創(chuàng)建Excel電子表格的步驟,隨后將該Excel電子表格保存在一個數(shù)據(jù)庫表中。

    初步設置

      org.apache.poi.hssf.usermodel包提供POI HSSF項目的實現(xiàn)。要生成或解析Excel電子表格,需要在類路徑中設置org.apache.poi.hssf.usermodel包類。下載Apache POI庫poi-bin-2.5.1-final-20040804.zip文件,將該zip文件解壓縮所到一個安裝目錄(http://jakarta.apache.org/poi/)。安裝WebLogic Server 8.1。下載MySQL數(shù)據(jù)庫(www.mysql.com)。解壓縮MySQL zip文件mysql-4.0.25-win32.zip到一個目錄下。安裝MySQL數(shù)據(jù)庫。下載MySQL Connector/J JDBC驅(qū)動程序(www.mysql.com/products/connector/j/)。解壓縮MySQL zip文件mysql-connector-java-3.1.10.zip到一個目錄下。添加MySQL JDBC驅(qū)動程序jar文件mysql-connector-java-3.1.10-bin.jar到<weblogic81>\samples\domains\examples\startExamplesServer腳本CLASSPATH變量。

      使用下面的DOS命令登錄到MySQL數(shù)據(jù)庫:

      >mysql

      使用下面的命令訪問示例數(shù)據(jù)庫測試:

      mysql>use test

      在MySQL數(shù)據(jù)庫中創(chuàng)建一個示例數(shù)據(jù)庫表,將在此生成Excel電子表格。清單1展示了創(chuàng)建示例表Catalog的SQL腳本。

      清單1:Catalog.sql

    CREATE TABLE Catalog(CatlogId VARCHAR(25)
    PRIMARY KEY, Journal VARCHAR(25), Section VARCHAR(25),
    Edition VARCHAR(25), Title Varchar(125), Author Varchar(25));

    INSERT INTO Catalog VALUES('catalog1', 'dev2dev',
    'WebLogic Platform 8.1',
    'Oct 2004', 'BEA WebLogic Platform 8.1 SP3 Evaluation Guide',
    'dev2dev');

    INSERT INTO Catalog VALUES('catalog2', 'dev2dev',
    'WebLogic Server',
    'Feb 2005', 'Application Architecture for Applications Built on
    BEA WebLogic Platform 8.1', 'Bob Hensle');

    INSERT INTO Catalog VALUES('catalog3', 'dev2dev',
    'WebLogic Integration',
    'March 2005', 'The BEA WebLogic Platform and Host Integration',
    'Tom Bice');

      接下來,我們將向WebLogic Server Classpath添加Apache POI .jar文件,并在WebLogic Server中創(chuàng)建一個JDBC數(shù)據(jù)源來檢索用于Excel電子表格的數(shù)據(jù)。

      添加poi-2.5.1-final-20040804.jar文件到<weblogic81>\samples\domains\examples\startExamplesServer腳本中的CLASSPATH變量中。<weblogic81>是安裝WebLogic Server的目錄。

      接下來,使用MySQL數(shù)據(jù)庫在WebLogic Server中創(chuàng)建JDBC連接。使用startExamplesServer腳本啟動示例服務器。使用URL http://localhost:7001/console或者WebLogic Server Examples索引中的Administration Console鏈接來訪問管理控制臺。在管理控制臺中,右擊examples>Services>JDBC>Connection Pools節(jié)點,并選擇Configure a new JDBCConnectionPool。指定以下連接屬性來配置JDBC連接池:

    • 數(shù)據(jù)庫類型:MySQL
    • JDBC驅(qū)動程序:MySQL's Driver (Type 4)
    • 數(shù)據(jù)庫名稱:test
    • 主機名:localhost
    • 端口號:3306
    • 驅(qū)動程序類名:com.mysql.jdbc.Driver
    • 連接URL:jdbc:mysql://localhost:3306/test

      接下來,在管理控制臺中配置JDBC數(shù)據(jù)源。右擊examples>Services>JDBC>DataSources節(jié)點,并選擇Configure a new JDBCTxDataSource。在Configure the data source框中指定數(shù)據(jù)源名和JNDI名——例如,MySqlDS。在Connect to connection pool框中選擇先前使用MySQL數(shù)據(jù)庫配置的連接池。在Target the datasource框中選擇examplesServer。這樣就使用MySQL數(shù)據(jù)庫配置了一個數(shù)據(jù)源。

    使用Apache POI生成Excel文檔

      在這一節(jié)中,我們將從示例數(shù)據(jù)庫表生成Excel電子表格。首先,創(chuàng)建一個生成Excel電子表格的JSP應用程序。

      在JSP中,將從一個MySQL數(shù)據(jù)庫表創(chuàng)建Excel電子表格。使用Apache POI HSSF API來生成Excel電子表格。Apache POI HSSF包中含有用于Excel電子表格的不同組件的類。表1列出了Apache POI HSSF包中一些常用的類:

    使用Apache POI生成Excel文檔

      首先,導入Apache POI HSSF包:

      <%@ page import="org.apache.poi.hssf.usermodel.*,  java.sql.*,
    java.io.*,javax.naming.InitialContext"%>
    創(chuàng)建一個Excel workbook:
      HSSFWorkbook wb=new HSSFWorkbook();

      接下來,創(chuàng)建一個Excel電子表格:

      HSSFSheet sheet1=wb.createSheet("sheet1");

      該電子表格的數(shù)據(jù)是從MySQL數(shù)據(jù)庫表檢索得到的。從數(shù)據(jù)庫獲得JDBC連接。JDBC連接是使用datasource JNDI MySqlDS獲得的。

      InitialContext initialContext = new InitialContext();
    javax.sql.DataSource ds = (javax.sql.DataSource)
    initialContext.lookup("MySqlDS");
    java.sql.Connection conn = ds.getConnection();

      創(chuàng)建一個java.sql.Statement,并從示例表Catalog獲得結(jié)果集:

      Statement stmt=conn.createStatement();
    ResultSet resultSet=stmt.executeQuery("Select * from Catalog");

      為Excel電子表格創(chuàng)建一個標題行。Excel電子表格中的行從“0”開始。

      HSSFRow row=sheet1.createRow(0);

      對應于表的列設置標題行單元格的值。行單元格也是從“0”開始。例如,行中第一個單元格的值被使用setCellValue方法設置為CatalogId。

      row.createCell((short)0).setCellValue("CatalogId");

      要向電子表格添加行,迭代結(jié)果集并為每個表格行添加一行。從ResultSet檢索列值,并在行單元格中設置這些值。

    for (int i=1;resultSet.next(); i++)
    {
    row=sheet1.createRow(i);
    row.createCell((short)0).setCellValue(resultSet.getString(1));
    row.createCell((short)1).setCellValue(resultSet.getString(2));
    row.createCell((short)2).setCellValue(resultSet.getString(3));
    row.createCell((short)3).setCellValue(resultSet.getString(4));
    row.createCell((short)4).setCellValue(resultSet.getString(5));
    }

      創(chuàng)建一個FileOutputStream來將Excel電子表格輸出到XLS文件。每個XLS文件表示一個Excel電子表格:

      FileOutputStream output=new文件OutputStream(new文件("c:/excel/catalog.xls"));

      將Excel電子表格輸出到XLS文件:

      wb.write(output);

      在“參考資料”部分有用于生成Excel電子表格的ExcelWebLogic.jsp JSP。

      要在WebLogic Server中運行ExcelWebLogic.jsp JSP,復制該JSP到<weblogic81>\samples\server\examples\build\mainWebApp目錄。使用URL http://localhost:7001/ExcelWebLogic.jsp運行該JSP。

      生成的Excel電子表格可以在Excel (http://office.microsoft.com/en-us/FX010858001033.aspx)或Excel Viewer工具tool (http://office.microsoft.com/en-us/assistance/HA011620741033.aspx)中打開。

    將Excel文檔保存在數(shù)據(jù)庫表中

      本節(jié)我們將使用Apache POI API將一個Excel電子表格保存在MySQL數(shù)據(jù)庫表中。要保存的示例Excel文檔是catalog.xls,即,前一節(jié)所生成的電子表格。該Excel電子表格被保存在MySQL表Catalog中。使用MySQL命令刪除前一節(jié)中用于生成Excel文檔的Catalog表:

      MySQL>DROP table Catalog;

      開發(fā)一個JSP應用程序來將示例Excel文檔保存在MySQL數(shù)據(jù)庫中。在JSP應用程序中導入Apache POI包org.apache.poi.poifs.filesystem和org.apache.poi.hssf.usermodel。org.apache.poi.poifs.filesystem包中包含創(chuàng)建Excel workbook的類,而org.apache.poi.hssf.usermodel包中包含表示Excel workbook、電子表格、電子表格行和行單元格的類。

      <%@ page import="org.apache.poi.poifs.filesystem.*,
    org.apache.poi.hssf.usermodel.*, java.sql.*,
    java.io.*,javax.naming.InitialContext"%>

      像前一節(jié)一樣,從MySQL datasource獲得JDBC連接:

      InitialContext initialContext = new InitialContext();
    javax.sql.DataSource ds = (javax.sql.DataSource)
    initialContext.lookup("MySqlDS");
    java.sql.Connection conn = ds.getConnection();

      從JDBC連接創(chuàng)建java.sql.Statement:

      Statement stmt=conn.createStatement();

      創(chuàng)建一個MySQL表來保存Excel電子表格:

      String createTable="CREATE TABLE Catalog(CatalogId  VARCHAR(25) PRIMARY KEY,Journal
    VARCHAR(25),Section VARCHAR(25),Edition VARCHAR(25),Title Varchar(125),Author Varchar(25))";
      stmt.execute(createTable);

      創(chuàng)建一個POIFSFileSystem來讀取Excel文檔:

      File catalogExcel=new File("C:/ExcelWebLogic/catalog.xls");
    FileInputStream inputStream=new FileInputStream(catalogExcel);
    POIFSFileSystem fileSystem=new POIFSFileSystem(inputStream);

      從POIFSFileSystem獲得一個HSSF workbook:

      HSSFWorkbook wb=new HSSFWorkbook(fileSystem);

      從Excel workbook獲得一個Excel電子表格:

      HSSFSheet sheet1=wb.getSheet("sheet1");

      使用row iterator迭代電子表格中的行:

      java.util.Iterator rowIterator=sheet1.rowIterator();
    HSSFRow row=(HSSFRow)rowIterator.next();

      對于每一行,迭代行單元格的值。例如,CatalogId行單元格值是使用以下代碼檢索的:

      String catalogId=row.getCell((short)0).getStringCellValue();

      對于Excel電子表格中的每一行,添加一個表格行:

    String exceltable="INSERT INTO Catalog VALUES("+"\'"+catalogId+"\
    '"+","+"\'"+journal
    +"\'"+","+"\'"+section+"\'"+","+"\'"+edition+"\'"+","+"\'"+title+"\
    '"+","+"\'"+author+"\'"+")";
    stmt.execute(exceltable);

      復制POIWebLogic.jsp到<weblogic81>\samples\server\examples\build\mainWebApp目錄。使用URL http://localhost:7001/POIWebLogic.jsp運行JSP。這樣就從Excel電子表格生成一個MySQL數(shù)據(jù)庫表。在“參考資料”部分有用于從Excel電子表格生成數(shù)據(jù)庫表的POIWebLogic.jsp。

    結(jié)束語

      在本教程中,我們從一個MySQL數(shù)據(jù)庫表生成了一個Excel電子表格,隨后將該電子表格保存在一個數(shù)據(jù)庫表中。WebLogic Server提供了一個數(shù)據(jù)源以及運行JSP應用程序的J2EE應用服務器,從而方便了從數(shù)據(jù)庫表到Excel電子表格以及從電子表格到數(shù)據(jù)庫表的轉(zhuǎn)換。

    原文出處:http://wldj.sys-con.com/read/185302.htm

     作者簡介

    Ajay Vohra 是DataSynapse公司的高級解決方案架構(gòu)師。

    Deepak Vohra 是一名NuBean顧問兼web開發(fā)人員。他擁有Sun Certified Java 1.4 Programmer和Sun Certified Web Component Developer for J2EE證書。
    posted on 2008-03-10 18:05 jinfeng_wang 閱讀(2204) 評論(1)  編輯  收藏 所屬分類: java 、ZZ

    評論

    # re: WebLogic教程:在WebLogic Server中集成Apache Poi 2013-05-21 09:38 fs
    fa  回復  更多評論
      

    主站蜘蛛池模板: 精品久久久久久亚洲| 亚洲国产成a人v在线观看| 亚洲欧美日韩中文无线码| 免费国产在线观看不卡| 精品一区二区三区高清免费观看 | 亚洲精品无码久久久影院相关影片| 免费看黄的成人APP| 亚洲色无码专区一区| 国产专区一va亚洲v天堂| 免费国产黄网站在线观看| 国产精品亚洲综合天堂夜夜| 久久亚洲精品AB无码播放| 午夜视频免费成人| a国产成人免费视频| 亚洲乱色熟女一区二区三区蜜臀| 亚洲国产精品无码专区| 老司机永久免费网站在线观看| 日韩a级无码免费视频| 亚洲gay片在线gv网站| 亚洲国产一区二区a毛片| 国产传媒在线观看视频免费观看| 久草免费福利资源站| 国产精品一区二区三区免费| 男女啪啪免费体验区| 免费的黄网站男人的天堂| 亚洲黄色在线观看| 亚洲国产精品一区二区第一页免 | 亚洲国产人成精品| 免费AA片少妇人AA片直播| 女同免费毛片在线播放| 亚洲女子高潮不断爆白浆| 久久av无码专区亚洲av桃花岛| 亚洲精品国产日韩无码AV永久免费网| 又黄又爽又成人免费视频| 国产免费一区二区三区不卡| 国产精品成人亚洲| 亚洲成av人片在线天堂无| 亚洲性无码av在线| 亚洲人成电影在在线观看网色| 国产亚洲精午夜久久久久久| 无码国模国产在线观看免费|