您的位置:首页 > Web前端 > JavaScript

JSP页面加载xls表格数据

2016-08-10 13:49 393 查看
解析用到的第三方库: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;

}

}




表格可以自己加入数据

通过代码解析 得到集合类

再通过前台进行获取

我这里将包导出成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>


本来是想用forEach标签来取值 但是嵌套的集合 弄了半天 还是取不到 就干脆放到小脚本里面去了

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

可以用Servlet传值 也可以用数据库来实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp poi
相关文章推荐