- 浏览: 1047972 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
从EXCEL到数据库,引入poi.jar
jsp如下
点击(此处)折叠或打开
<form enctype="multipart/form-data" name=testform method=post action=Testaction>
<table>
<tr>
<td><font size=2>批量上传:</font><input type="file" name="test" size="10"><br></td>
<td><input type="submit" name="批量上传" size="10"value="批量上传"><br></td></tr></table><br>
</form>
Servlet如下
点击(此处)折叠或打开
package control;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Testaction extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
/**
* The doPost method of the servlet.
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//接收上传文件内容中临时文件的文件名
String tempFileName = new String("tempFileName");
//tempfile 对象指向临时文件
File tempFile = new File("D:/"+tempFileName);
//outputfile 文件输出流指向这个临时文件
FileOutputStream outputStream = new FileOutputStream(tempFile);
//得到客服端提交的所有数据
InputStream fileSourcel = request.getInputStream();
//将得到的客服端数据写入临时文件
byte b[] = new byte[1000];
int n ;
while ((n=fileSourcel.read(b))!=-1){
outputStream.write(b,0,n);
}
//关闭输出流和输入流
outputStream.close();
fileSourcel.close();
//randomFile对象指向临时文件
RandomAccessFile randomFile = new RandomAccessFile(tempFile,"r");
//读取临时文件的第一行数据
randomFile.readLine();
//读取临时文件的第二行数据,这行数据中包含了文件的路径和文件名
String filePath = randomFile.readLine();
System.out.println(filePath);
//得到文件名
int position = filePath.lastIndexOf('\\');
CodeToString codeToString = new CodeToString();
String filename = codeToString.codeString(filePath.substring(position,filePath.length()-1));
//重新定位读取文件指针到文件头
randomFile.seek(0);
//得到第四行回车符的位置,这是上传文件数据的开始位置
long forthEnterPosition = 0;
int forth = 1;
while((n=randomFile.readByte())!=-1&&(forth<=4)){
if(n=='\n'){
forthEnterPosition = randomFile.getFilePointer();
forth++;
}
}
//生成上传文件的目录
File fileupLoad = new File("F:/MyEclipse/Manager/WebRoot/file","upLoad");
fileupLoad.mkdir();
//saveFile 对象指向要保存的文件
File saveFile = new File("F:/MyEclipse/Manager/WebRoot/file/upLoad",filename);
RandomAccessFile randomAccessFile = new RandomAccessFile(saveFile,"rw");
//找到上传文件数据的结束位置,即倒数第四行
randomFile.seek(randomFile.length());
long endPosition = randomFile.getFilePointer();
int j = 1;
while((endPosition>=0)&&(j<=4)){
endPosition--;
randomFile.seek(endPosition);
if(randomFile.readByte()=='\n'){
j++;
}
}
//从上传文件数据的开始位置到结束位置,把数据写入到要保存的文件中
randomFile.seek(forthEnterPosition);
long startPoint = randomFile.getFilePointer();
while(startPoint<endPosition){
randomAccessFile.write(randomFile.readByte());
startPoint = randomFile.getFilePointer();
}
randomAccessFile.close();
randomFile.close();
tempFile.delete();
TestExcel t=new TestExcel();
t.add();
}
}
真正的核心代码,分析EXCEL
点击(此处)折叠或打开
package control;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import db.DB;
import db.Test_table;
public class TestExcel {
//记录类的输出信息?
static Log log = LogFactory.getLog(TestExcel.class);
//获取Excel文档的路径?
public static String filePath = "F://MyEclipse//Manager//WebRoot//file//upLoad//test.xls";
public void add() {
try {
// 创建对Excel工作簿文件的引用?
HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(filePath));
// 在Excel文档中,第一张工作表的缺省索引是0
// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);?
HSSFSheet sheet = wookbook.getSheet("Sheet1");
//获取到Excel文件中的所有行数
int rows = sheet.getPhysicalNumberOfRows();
//遍历行
for (int i = 0; i < rows; i++) {
// 读取左上端单元格?
HSSFRow row = sheet.getRow(i);
// 行不为空
if (row != null) {
//获取到Excel文件中的所有的列?
int cells = row.getPhysicalNumberOfCells();
String value = "";
//遍历列?
for (int j = 0; j < cells; j++) {
//获取到列的值?
HSSFCell cell = row.getCell(j);
if (cell != null) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_FORMULA:
break;
case HSSFCell.CELL_TYPE_NUMERIC:
value += cell.getNumericCellValue() + ",";
break;
case HSSFCell.CELL_TYPE_STRING:
value += cell.getStringCellValue() + ",";
break;
default:
value += "0";
break;
}
}
}
// 将数据插入到sqlserver数据库中
String[] val = value.split(",");
DB db=new DB();
Test_table jBean=new Test_table();
String sql ="insert into test_table(num1,num2,num3) values('"+val[0]+"','"+val[1]+"','"+val[2]+"')";
int count=db.getInserttest(sql, jBean);
System.out.println("------------------"+sql);
if(count>0){
//关闭文件输入、输出
}
}}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
DB数据库连接类
点击(此处)折叠或打开
public class DB {
private static DB db = null;
private static Connection conn = null;
private static PreparedStatement pstmt = null;
private static Statement stmt = null;
//单例模式,new DB类的时候,创建唯一对象,只初始化一次,
//注意:不要显式闭此static中的Connection和Statement对象,否则抛空指针异常
static{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Market" ,"sa","a");
stmt = conn.createStatement();
System.out.println("--------初始化---------");
} catch (ClassNotFoundException e) {
System.out.println("---------- 加载数据库驱动类时发生异常: ----------");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("------------ getConnection()方法发生异常--------------");
}
}
public PreparedStatement prepareStmt(String sql){
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(sql);
} catch (SQLException e) {
System.out.println("-------------prepareStmt()方法发生异常-------------------");
e.printStackTrace();
}
return pstmt;
}
//执行查询所有记录操作
public ResultSet exeQuery(String sql){
ResultSet rs = null;
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
System.out.println("------------exeQuery()方法发生异常: --------------------");
e.printStackTrace();
}
return rs;
}
public void exeUpdate(String sql){
try{
stmt.executeUpdate(sql);
} catch(SQLException e){
System.out.println("------------- exeUpdate()方法发生异常------------------");
e.printStackTrace();
}
}
//关闭PreparedStatement对象
public void closePstmt(PreparedStatement pstmt){
try{
pstmt.close();
pstmt = null;
}catch(SQLException e){
System.out.println("-------------------- DB.closePstmt()方法发生异常 -------------------------");
e.printStackTrace();
}
}
//关闭ResultSet对象
public void closeRs(ResultSet rs){
try{
if(rs!=null)
rs.close();
// rs = null;
}catch(SQLException e){
System.out.println("-------------------- DB.closePstmt()方法发生异常 -------------------------");
e.printStackTrace();
}
}
public Connection getDB()
{
return conn ;
}
数据库 表名为 test_table 字段名称为num1,num2,num3。
jsp如下
点击(此处)折叠或打开
<form enctype="multipart/form-data" name=testform method=post action=Testaction>
<table>
<tr>
<td><font size=2>批量上传:</font><input type="file" name="test" size="10"><br></td>
<td><input type="submit" name="批量上传" size="10"value="批量上传"><br></td></tr></table><br>
</form>
Servlet如下
点击(此处)折叠或打开
package control;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Testaction extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
/**
* The doPost method of the servlet.
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//接收上传文件内容中临时文件的文件名
String tempFileName = new String("tempFileName");
//tempfile 对象指向临时文件
File tempFile = new File("D:/"+tempFileName);
//outputfile 文件输出流指向这个临时文件
FileOutputStream outputStream = new FileOutputStream(tempFile);
//得到客服端提交的所有数据
InputStream fileSourcel = request.getInputStream();
//将得到的客服端数据写入临时文件
byte b[] = new byte[1000];
int n ;
while ((n=fileSourcel.read(b))!=-1){
outputStream.write(b,0,n);
}
//关闭输出流和输入流
outputStream.close();
fileSourcel.close();
//randomFile对象指向临时文件
RandomAccessFile randomFile = new RandomAccessFile(tempFile,"r");
//读取临时文件的第一行数据
randomFile.readLine();
//读取临时文件的第二行数据,这行数据中包含了文件的路径和文件名
String filePath = randomFile.readLine();
System.out.println(filePath);
//得到文件名
int position = filePath.lastIndexOf('\\');
CodeToString codeToString = new CodeToString();
String filename = codeToString.codeString(filePath.substring(position,filePath.length()-1));
//重新定位读取文件指针到文件头
randomFile.seek(0);
//得到第四行回车符的位置,这是上传文件数据的开始位置
long forthEnterPosition = 0;
int forth = 1;
while((n=randomFile.readByte())!=-1&&(forth<=4)){
if(n=='\n'){
forthEnterPosition = randomFile.getFilePointer();
forth++;
}
}
//生成上传文件的目录
File fileupLoad = new File("F:/MyEclipse/Manager/WebRoot/file","upLoad");
fileupLoad.mkdir();
//saveFile 对象指向要保存的文件
File saveFile = new File("F:/MyEclipse/Manager/WebRoot/file/upLoad",filename);
RandomAccessFile randomAccessFile = new RandomAccessFile(saveFile,"rw");
//找到上传文件数据的结束位置,即倒数第四行
randomFile.seek(randomFile.length());
long endPosition = randomFile.getFilePointer();
int j = 1;
while((endPosition>=0)&&(j<=4)){
endPosition--;
randomFile.seek(endPosition);
if(randomFile.readByte()=='\n'){
j++;
}
}
//从上传文件数据的开始位置到结束位置,把数据写入到要保存的文件中
randomFile.seek(forthEnterPosition);
long startPoint = randomFile.getFilePointer();
while(startPoint<endPosition){
randomAccessFile.write(randomFile.readByte());
startPoint = randomFile.getFilePointer();
}
randomAccessFile.close();
randomFile.close();
tempFile.delete();
TestExcel t=new TestExcel();
t.add();
}
}
真正的核心代码,分析EXCEL
点击(此处)折叠或打开
package control;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import db.DB;
import db.Test_table;
public class TestExcel {
//记录类的输出信息?
static Log log = LogFactory.getLog(TestExcel.class);
//获取Excel文档的路径?
public static String filePath = "F://MyEclipse//Manager//WebRoot//file//upLoad//test.xls";
public void add() {
try {
// 创建对Excel工作簿文件的引用?
HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(filePath));
// 在Excel文档中,第一张工作表的缺省索引是0
// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);?
HSSFSheet sheet = wookbook.getSheet("Sheet1");
//获取到Excel文件中的所有行数
int rows = sheet.getPhysicalNumberOfRows();
//遍历行
for (int i = 0; i < rows; i++) {
// 读取左上端单元格?
HSSFRow row = sheet.getRow(i);
// 行不为空
if (row != null) {
//获取到Excel文件中的所有的列?
int cells = row.getPhysicalNumberOfCells();
String value = "";
//遍历列?
for (int j = 0; j < cells; j++) {
//获取到列的值?
HSSFCell cell = row.getCell(j);
if (cell != null) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_FORMULA:
break;
case HSSFCell.CELL_TYPE_NUMERIC:
value += cell.getNumericCellValue() + ",";
break;
case HSSFCell.CELL_TYPE_STRING:
value += cell.getStringCellValue() + ",";
break;
default:
value += "0";
break;
}
}
}
// 将数据插入到sqlserver数据库中
String[] val = value.split(",");
DB db=new DB();
Test_table jBean=new Test_table();
String sql ="insert into test_table(num1,num2,num3) values('"+val[0]+"','"+val[1]+"','"+val[2]+"')";
int count=db.getInserttest(sql, jBean);
System.out.println("------------------"+sql);
if(count>0){
//关闭文件输入、输出
}
}}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
DB数据库连接类
点击(此处)折叠或打开
public class DB {
private static DB db = null;
private static Connection conn = null;
private static PreparedStatement pstmt = null;
private static Statement stmt = null;
//单例模式,new DB类的时候,创建唯一对象,只初始化一次,
//注意:不要显式闭此static中的Connection和Statement对象,否则抛空指针异常
static{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Market" ,"sa","a");
stmt = conn.createStatement();
System.out.println("--------初始化---------");
} catch (ClassNotFoundException e) {
System.out.println("---------- 加载数据库驱动类时发生异常: ----------");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("------------ getConnection()方法发生异常--------------");
}
}
public PreparedStatement prepareStmt(String sql){
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(sql);
} catch (SQLException e) {
System.out.println("-------------prepareStmt()方法发生异常-------------------");
e.printStackTrace();
}
return pstmt;
}
//执行查询所有记录操作
public ResultSet exeQuery(String sql){
ResultSet rs = null;
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
System.out.println("------------exeQuery()方法发生异常: --------------------");
e.printStackTrace();
}
return rs;
}
public void exeUpdate(String sql){
try{
stmt.executeUpdate(sql);
} catch(SQLException e){
System.out.println("------------- exeUpdate()方法发生异常------------------");
e.printStackTrace();
}
}
//关闭PreparedStatement对象
public void closePstmt(PreparedStatement pstmt){
try{
pstmt.close();
pstmt = null;
}catch(SQLException e){
System.out.println("-------------------- DB.closePstmt()方法发生异常 -------------------------");
e.printStackTrace();
}
}
//关闭ResultSet对象
public void closeRs(ResultSet rs){
try{
if(rs!=null)
rs.close();
// rs = null;
}catch(SQLException e){
System.out.println("-------------------- DB.closePstmt()方法发生异常 -------------------------");
e.printStackTrace();
}
}
public Connection getDB()
{
return conn ;
}
数据库 表名为 test_table 字段名称为num1,num2,num3。
发表评论
-
20180222积累
2018-02-22 09:34 4781. mybatis如何通过接口查找对应的mapper. ... -
20180208积累
2018-02-08 10:28 465临时表与永久表相似,但临时表存储在 tempdb 中,当不 ... -
行业应用
2018-01-30 16:30 485git clone的时候用上面那个IP地址,下面栏中的不能 ... -
SQLite 数据库
2018-01-29 22:57 755android: SQLite创建数据 ... -
java里面获取map的key和value的方法
2018-02-01 11:29 2158获取map的key和value的方法分为两种形式: ma ... -
Eclipse中Maven WEB工程tomcat项目添加调试以及项目发布细节记录
2018-02-23 21:11 725一、建立一个maven WEB项目 1、file-&g ... -
错误:HttpServlet was not found on the Java
2018-02-23 21:12 381我们在用Eclipse进行Java web ... -
使用 java8 实现List到Array的转换
2018-02-23 21:13 2988开发中需要调用第三方的库,有些 API 的入参要求是 do ... -
Java8 利用Lambda处理List集合
2018-01-11 09:58 5630Java 8新增的Lambda表达式,我们可以很方便地并行操 ... -
java中string与json互相转化
2018-01-11 09:40 1076在Java中socket传输数据时,数据类型往往比较难选择。 ... -
JSON 数据格式
2018-01-11 09:37 474JSON(JavaScript Object Notatio ... -
java怎么读取json格式的数据
2018-01-11 09:46 1059java可以使用JSONObject和JSONArray来操作 ... -
Java8-如何将List转变为逗号分隔的字符串
2018-01-10 10:13 1988Converting a List to a String ... -
eclipse maven 打war包的两种方式
2018-02-23 21:25 703第一种:利用pom.xml文件打包。 右键pom.xml ... -
Annotation(三)——Spring注解开发
2018-02-28 09:21 428Spring框架的核心功能IoC(Inversion o ... -
Spring自定义注解
2018-02-28 09:32 594java注解:附在代码中的一些元信息,用于在编译、运行时起 ... -
Java项目
2018-01-08 10:56 0这两种解决办法已经能完全解决问题,不过值得注意的一点是,我 ... -
解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法
2018-03-22 10:41 1130在Eclipse中建立好一个Maven项目后,如果Java ... -
Java @override报错的解决方法
2018-01-07 12:56 0有时候Java的Eclipse工程换一台电脑后编译总是@ove ... -
Java 8 配置Maven-javadoc-plugin
2018-01-07 09:07 1040在升级JDK至1.8之后,使用Maven-javadoc- ...
相关推荐
首先,让我们深入了解如何导入Excel数据到MySQL数据库: 1. **Apache POI库**:Apache POI是一个开源项目,提供了读写Microsoft Office格式文档的能力,包括Excel。我们需要添加对应的依赖到项目中,以便能够解析和...
JSP 通过 Servlet 将 Excel 数据导入 SQL 本资源主要介绍了如何使用 JSP 通过 Servlet 将 Excel 数据导入 SQL Server 数据库。下面是详细的知识点: 1. JSP 和 Servlet 简介 JSP(Java Server Pages)是一种_...
本例子将介绍如何在JSP中利用POI库来实现Excel数据的导入功能。 首先,我们需要在项目中引入Apache POI的相关依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.poi ...
在JavaWeb开发中,将Excel数据导入到数据库是一项常见的需求,尤其在数据处理、报表生成或数据分析场景下。本项目提供了完整的源码实现,帮助开发者理解并应用这一功能。通过以下步骤,我们可以实现这个过程: 1. *...
在Excel导入导出过程中,Servlet将处理JSP提交的文件上传请求,读取Excel数据,并将数据保存到数据库或生成新的Excel文件。 Apache POI是Apache软件基金会的一个开源项目,专门用于读写Microsoft Office格式的文件...
在这个主题中,我们将深入探讨如何使用Java技术栈,特别是基于IDEA开发环境,来实现在JSP和Servlet中进行Excel与数据库之间的数据导入和导出。 首先,我们需要了解Java中用于处理Excel文件的库,如Apache POI。...
这个场景中,我们将讨论如何使用Servlet和JSP来实现在Java Web应用中完成Excel文件的上传,并将其数据导入到MySQL数据库。Servlet是Java中用于处理HTTP请求的服务器端组件,而JSP则是一种动态网页技术,它们结合使用...
《使用Easy-Poi进行Excel导入导出的实践详解》 在现代企业中,数据处理是一项不可或缺的任务,而Excel作为常见的数据存储和分析工具,其导入导出功能在各种业务场景中发挥着重要作用。Easy-Poi是一款优秀的Java库,...
在标题为“数据库数据导入到excel中 jsp”的场景下,我们主要探讨的是如何利用Java Web技术,尤其是JSP(JavaServer Pages)来实现数据在数据库与Excel之间的交互。描述中提到的实例涵盖了两个方向:将Excel数据导入...
在Java Web开发中,导入Excel是一项常见的需求,例如用于数据导入、数据分析或者用户上传数据等场景。本知识点将深入探讨如何在Java Web环境下处理Excel文件,主要包括以下内容: 1. **环境准备**: - Java运行...
web项目,直接可执行 测试环境:java 1.8 + poi 3.17+tomcat jar列表: commons-codec-1.10.jar commons-collections4-4.1.jar commons-fileupload-1.3.1.jar ...servlet-api-2.5.jar xmlbeans-2.6.0.jar
本话题聚焦于如何利用JSP实现数据库操作,包括数据的增加、查询以及Excel数据的导入。其中,“poi”是Apache软件基金会的一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel。 首先,让我们详细探讨...
总结来说,这个学生管理系统是一个综合运用了Java Web技术,包括jsp、servlet和MySQL数据库的项目,具备数据挖掘、文件上传下载、数据库及Excel数据的导入导出等功能。对于学习Java Web开发或进行毕业设计的学生而言...
在S2SH(Struts2、Spring、Hibernate)框架中,导入Excel是一项常见的功能,用于批量处理数据,例如用户输入、数据分析或者系统初始化等。在提供的文件内容中,我们可以看到涉及导入Excel的相关代码和配置,这将帮助...
导出excel业务流程: ---------------------------------------------------------- 1、用户点击按钮向服务器发送请求同时将页面数据一同发送到服务器端 2、服务器端接收请求和数据 3、经过servlet对接收到的数据...
- 在导入Excel数据到数据库之前,通常需要将数据映射到对应的Java对象(POJO)上。这可以通过创建一个或多个Java类,每个类对应Excel表格的一行,字段与Excel列名相对应。这样可以方便地将Excel数据转换为Java对象...
使用SmartUpload来上传文件才能获取form表单文本的值
本示例"导入Excel读取数据的小例子"展示了如何在Java Web环境中实现这个功能。 首先,我们需要理解的是文件上传的概念。在Web应用中,文件上传允许用户从本地计算机选择文件并将其发送到服务器进行处理。这通常涉及...
综上所述,这个压缩包提供了一个基础的文件上传示例,结合前端的AJAX和后端的Servlet,可以实现Excel文件的导入和导出功能。在实际项目中,可以根据需求进行扩展,如增加错误处理、进度显示、多文件上传等功能,提高...