JSP结合JXL.jar包实现网页Table显示读取到的Excel表格

时间:2021-01-03 09:13:23

最近我的每日一讲是JSP结合JXL.jar包实现网页显示读取的Excel表格,话说和JXL.jar。去年就是讲它和数据库的结合。
好了言归正传、在实现之前

先认识几个JXL.jar中的方法:

读取一个工作簿(整个Excel表)
Workbook wb = Workbook.getWorkbook(fileName);

读取工作表
Sheet sheet = wb.getSheet(0)
JSP结合JXL.jar包实现网页Table显示读取到的Excel表格

得到工作表的行数
sheet.getRows()

得到工作表的列数
sheet.getColumns

得到相应行列的单元格
Cell cell = sheet.getCell(列, 行);

得到相应单元格的值
cell.getContents()

接下来结合到JSP页面

JSP代码是这样写的(注意引入JXL.jar包):

<%@ page language="java" import="java.util.*,jxl.*,java.io.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'test.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

<style type="text/css">
table{
margin:0px auto;
}

</style>
</head>

<body>
<table border="1" cellspacing="0" cellpadding="0">
<% request.setCharacterEncoding("UTF-8");
try{
String fileName =(String)session.getAttribute("url");// Excel文件所在路径,我传了一个路径过来,也可修改为自己的本地路径
File file = new File(fileName); // 创建文件对象
Workbook wb = Workbook.getWorkbook(file); // 从文件流中获取Excel工作区对象(WorkBook)
Sheet sheet = wb.getSheet(0); // 从工作区中取得页(Sheet)

for (int i = 0; i < sheet.getRows(); i++) { // 循环打印Excel表中的内容
%>

<tr><%
for (int j = 0; j < sheet.getColumns(); j++) {
Cell cell = sheet.getCell(j, i);
%>

<td><%=cell.getContents()%></td>
<%
}
%>

</tr>

<%
}
} catch (Exception e) {
e.printStackTrace();
}


%>


</table>


<br>
</body>
</html>

好了代码很简单,但是效果还是有的,我们可以根据自己的需要给表格添加一些自定义的样式,另外,如何自定义传值方面,可以看我前一篇文章
[input type=”file” 选取文件路径时出现fakepath问题IE浏览器解决办法]
基本方法就是用一个form表单里定义一个type=”file” ,再用一个text文本接住值,再传过去,在ie浏览器中要修改安全选项,才可以取出fakepath隐藏的地址。