写文章

JSP页面加载xls表格数据

2018-11-29 16:48:50

925 | 0 | 0

解析用到的第三方库:POI 
HSSFWorkbook 类 
直接贴代码

package com.jx;import java.io.File;import java.io.FileInputStream;import java.net.URL;import java.util.ArrayList;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRichTextString;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.junit.Test;public class jx {

    static public int count = 0;
    static public int row1 = 0;

    public static void main(String[] args) throws Exception {
        jx j = new jx();
        List<List<Object>> hlist = null;
        List<List<Object>> list = null;
        List<Object> mlist = null;
        hlist = j.Test(list, mlist);
    }

    @Test
    public List<List<Object>> Test(List<List<Object>> list, List<Object> mlist)
            throws Exception {
        list = new ArrayList<List<Object>>();
        try {            /*
             * URL url =this.getClass().getResource("b.xls"); HSSFWorkbook wb =
             * new HSSFWorkbook(new FileInputStream(url.getPath()));
             */
            HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(new File(                    "F:/b.xls")));
            HSSFSheet sheet = wb.getSheetAt(0);
            // System.out.println(sheet.getLastRowNum()); 行数
            for (int j = 0; j < sheet.getLastRowNum() + 1; j++) {
                count = sheet.getLastRowNum() + 1;
                mlist = new ArrayList<Object>();
                HSSFRow row = sheet.getRow(j); // 每行的列
                for (int i = 0; i < row.getLastCellNum(); i++) {
                    row1 = row.getLastCellNum();
                    // row.getLastCellNum() 字段数
                    HSSFCell cell = row.getCell(i);
                    if (cell == null) {
                        mlist.add("");
                    } else {
                        if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {

                            HSSFRichTextString resultString = cell                                    .getRichStringCellValue();
                            System.out.print(resultString + "\t");
                            mlist.add(resultString);
                        }
                        if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {

                            int resultNum = (int) (cell.getNumericCellValue());
                            System.out.print(resultNum + "\t");
                            mlist.add(resultNum);
                        }
                    }
                }
                System.out.println();
                list.add(mlist);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;

    }

}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384

表格数据 
表格可以自己加入数据

通过代码解析 得到集合类 
再通过前台进行获取 
我这里将包导出成jar 放到WebRoot/WEB-INF/lib目录下

最后附上页面代码

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@page import="com.jx.*"%><%

    jx j = new jx();
    List<List<Object>> list = null;
    List<Object> mlist = null;
    List<List<Object>> hlist = null;
    hlist=j.Test(list, mlist);

%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head></head><body>
    <table border="1" cellspacing="2" cellpadding="1" align="center"
        width="80%">
        <%            for (int i = 0; i < j.count; i++) {
        %>
        <tr>
            <%                for (int k = 0; k < j.row1; k++) {
            %>
            <td><%=hlist.get(i).get(k)%></td>
            <%
                }
            %>
        </tr>
        <%
            }
        %>
    </table></body></html>

实现的方式很多,不推荐在页面中直接放小脚本 


0

收藏
分享