package com.servlet;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.locks.ReentrantLock;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
import com.hsun.HLog;
import com.utils.UpdateMerInterface;
public class UploadImportExcel extends HttpServlet {
String upDirPathName;
String upDirDatePathName;
File tmpDir = null;
File saveDir = null;
static int sUploadFileIndex = 1000000;
private static final ReentrantLock m_lock = new ReentrantLock();
public static int getNextUploadFileIndex() {
m_lock.lock();
int iretindex = sUploadFileIndex;
sUploadFileIndex += 1;
if (sUploadFileIndex > 9000000)
sUploadFileIndex = 1000000;
m_lock.unlock();
return iretindex;
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try {
if (ServletFileUpload.isMultipartContent(request)) {
String UserNameId = request.getParameter("UserNameId");
String mtype = request.getParameter("mtype");
HLog.m_messagelog.debug("UserNameId:" + UserNameId);
DiskFileItemFactory dff = new DiskFileItemFactory();
dff.setRepository(this.tmpDir);
dff.setSizeThreshold(1024000);
ServletFileUpload sfu = new ServletFileUpload(dff);
sfu.setFileSizeMax(100000000L);
sfu.setSizeMax(3000000000L);
FileItemIterator fii = sfu.getItemIterator(request);
while (fii.hasNext()) {
FileItemStream fis = fii.next();
if ((!fis.isFormField()) && (fis.getName().length() > 0)) {
String fileName = fis.getName();
String fieldName = fis.getFieldName();
if (fieldName.length() < 5)
continue;
String subfileName = fieldName.substring(0, 4);
System.out.println("333333:" + subfileName);
if (!subfileName.equals("file"))
continue;
String strFileIndexId = fieldName.substring(4);
HLog.m_messagelog.debug("fileName:" + fileName
+ ",subfilename:" + subfileName
+ ",strFileIndex:" + strFileIndexId);
HLog.m_messagelog
.debug("UploadQualifiFile:dopost,filename:"
+ fileName + ",fieldName:" + fieldName);
BufferedInputStream in = new BufferedInputStream(
fis.openStream());
Date now = new Date();
// SimpleDateFormat sdateformat = new SimpleDateFormat(
// "yyyyMMddHHmmss");
// String strNowDate = sdateformat.format(now);
String newFileName = UserNameId + ".xls";
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(new File(
this.upDirPathName + newFileName)));
Streams.copy(in, out, true);
System.out.println("1111:" + this.upDirPathName
+ newFileName);
UpdateMerInterface.readExcel(this.upDirPathName + newFileName);
}
}
response.setContentType("text/html;charset=UTF-8");
String retString = "<html><body><h1>通道切换成功</h1></body></html>";
response.getWriter().println(retString);
}
} catch (Exception e) {
e.printStackTrace();
HLog.m_messagelog.error("UploadQualifiFile:", e);
response.setContentType("text/html;charset=UTF-8");
response.getWriter()
.println(
"<html><body><input type=\"button\" value=\"上传失败\"/></html>");
}
}
public void init() throws ServletException {
super.init();
String rootpathname = getServletContext().getRealPath("/");
String tmpPath = rootpathname + "/tmpdir/";
String savePath = rootpathname + "batchexcel";
this.upDirPathName = savePath;
Date now = new Date();
SimpleDateFormat sdateformat = new SimpleDateFormat("yyyyMMdd");
String strNowDate = sdateformat.format(now);
this.upDirDatePathName = strNowDate;
this.upDirPathName = (this.upDirPathName + "/");
this.tmpDir = new File(tmpPath);
this.saveDir = new File(savePath);
if (!this.tmpDir.isDirectory())
this.tmpDir.mkdir();
if (!this.saveDir.isDirectory()) {
this.saveDir.mkdir();
this.saveDir = new File(this.upDirPathName);
this.saveDir.mkdir();
} else {
this.saveDir = new File(this.upDirPathName);
if (!this.saveDir.isDirectory())
this.saveDir.mkdir();
}
}
}
package com.utils;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import DBConnect.DBConnectManager;
import DBConnect.DBConnection;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class UpdateMerInterface {
//读取Excel文件
public static void readExcel(String file)
throws BiffException, IOException{
List<String> list = new ArrayList<String>();
Workbook rwb = null;
Cell cell = null;
//创建输入流
InputStream stream = new FileInputStream(file);
//获取Excel文件对象
rwb = Workbook.getWorkbook(stream);
//获取文件的指定工作表 默认的第一个
Sheet sheet = rwb.getSheet(0);
//行数
for(int i=0; i<sheet.getRows(); i++){
//获取第i行,第j列的值 (本次为全部获取第i行第一列的值)
cell = sheet.getCell(0,i);
String str = cell.getContents();
list.add(str);
}
if(list!=null&&list.size()>0){
updateMerInterface(list);
}else{
System.out.println("表数据为空");
}
}
public static void updateMerInterface(List<String> list){
// 切换通道到 27 | 000022 | new--SYX | 1
String sql = "update merchant set up_interface_no = '000022' where merchant_no in(";
for(int i=0;i<list.size();i++){
//判断商户号长度
if(list.get(i)!=null&&list.get(i).length()==15){
sql+=list.get(i)+",";
}
}
sql = sql.substring(0,sql.length()-1)+")";
List tmplist_par = new ArrayList();
DBConnection tmpconn = DBConnectManager.getDbConn();
int iret = tmpconn.updateSQL(sql, tmplist_par);
if (iret < 0){
DBConnectManager.releaseDbConn(tmpconn);
}else{
DBConnectManager.freeDbConn(tmpconn);
}
}
}
分享到:
相关推荐
`jxl`库是Java中一个广泛使用的库,它允许开发者方便地读取和写入Excel文件(.xls格式)。本篇将详细介绍如何利用`jxl`库来操作Excel文件,并结合实例说明如何从Excel文件中提取数据并生成TXT文件。 首先,我们需要...
在给定的标题和描述中,"jsp+jspsmart上传+poi3.8读取excel2007+jxl读取excel2003" 提到了一种结合Java Web技术实现文件上传,并通过不同库解析Excel文件的解决方案。这里我们将详细探讨涉及的各个知识点。 首先,`...
在Java编程环境中,JXL库...无论是读取客户端上传的Excel数据,还是生成自定义的Excel文件供用户下载,JXL都能提供强大的支持。在实际开发中,结合其他技术,如Spring MVC、Servlet等,可以构建出完整的Excel交互功能。
在描述中提到的另外两个jar包——`commons-fileupload-1.3.1.jar`和`commons-io-2.4.jar`,则是处理网络文件上传和I/O操作的重要库。Apache Commons FileUpload库用于解析HTTP请求中的多部分数据,如上传的文件,这...
3. **解析保存**:使用JXL库读取并解析Excel文件。以下是一个简单的示例代码片段,展示如何打开文件并遍历工作表: ```java Workbook workbook = Workbook.getWorkbook(new File("path_to_your_excel_file")); ...
JXL提供了对Excel文件读取、写入和修改的强大功能,支持多种版本的Excel文件格式,包括97/2000/xls和2007/xlsx等。 首先,导入JXL库到你的项目中是必要的。你可以通过Maven或者Gradle来添加依赖,如果使用Maven,...
Java Excel Library(简称jxl)是一个非常实用的Java库,专门用于读取和写入Microsoft Excel文件。在标题“jxl操作EXCEL的好东西”中,"jxl"指的是这个库,它为Java开发者提供了一种方便的方式来处理Excel数据,而...
- **数据导入导出**:在Web应用中,可以使用Apache POI或JXL将用户上传的Excel文件数据导入数据库,或者将数据库数据导出为Excel文件供用户下载。 - **数据分析**:通过读取Excel数据,可以进行数据清洗、统计分析...
综上所述,掌握jxl.jar的Excel操作、XML解析、log4j日志管理和文件上传下载技术,能够极大地提升你在IT领域的专业能力。在实际项目中,这些工具和技术将帮助你更有效地处理数据,调试代码,以及实现用户友好的文件...
例如,你可以用它来批量处理数据库数据并生成Excel报告,或者从用户上传的Excel文件中读取数据进行业务处理。 通过`ExcelUtil.java`这个文件名,我们可以推测这是一个包含Excel操作的工具类。在实际项目中,通常会...
"jxl"是一个Java库,专门设计用于读取和写入Microsoft Excel文件。本篇文章将深入探讨如何利用jxl库来实现Excel报表的导出以及将Excel中的数据插入到数据库。 首先,让我们了解jxl库的基本概念。jxl是一个开源项目...
总结来说,这个项目提供了使用`jxl.jar`库实现Excel文件上传和下载的实践案例。通过学习和理解这些示例,开发者可以掌握如何在Java环境中高效地处理Excel文件,这对于需要与Excel交互的任何项目都是非常有价值的。
JXL是一个轻量级的库,它允许开发人员以纯Java方式读取、创建和修改Excel文件,而无需依赖于Windows操作系统。尽管JXL可能无法直接实现单元格内的斜线绘制,但它提供了丰富的功能来处理Excel数据。 **1. JXL库的...
本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和写入xls和xlsx文件,现把结果告诉大家,希望大家不走弯路,直接掌握先进实用的技术,解决实际工作问题。...
这时,Java开发库JXL(Java Excel API)便成为了一个高效的选择,它允许开发者通过编程的方式读取、写入和修改Excel文件。本文将深入探讨如何利用JXL进行数据导入Excel的各类方法,以实现自动化数据处理。 #### JXL...
2. **数据导入**:允许用户上传Excel文件,程序读取数据并进行处理,如数据验证、清洗和入库。 3. **报表生成**:根据业务逻辑自动生成各类报表,如销售报告、财务报表等。 4. **自动化测试**:在自动化测试框架中,...
在SpringBoot项目中,我们经常需要处理Excel文件的导入与导出功能,这在数据分析、数据交换等场景中尤其常见。Apache POI 是一个流行的...同时,要注意文件上传的安全性,如检查文件类型和大小,以防止恶意文件上传。
3. **数据导入**:允许用户上传Excel文件,然后通过JXL API读取数据并将其导入到应用程序中,进行进一步处理。 **使用流程:** 1. 添加`jxl.jar`到项目类路径中,这是JXL API的主要库文件。 2. 引入必要的JXL类,...
这个过程通常涉及将Excel文件上传到服务器,然后通过特定的库解析和处理这些文件。标题"excel文件导入jar包"和描述中提到的"commons-fileupload.jar"与"jxl.jar"是实现这一功能的关键组件。 **1. Commons ...
jxl 上传、下载 excel表格后台测试范例(整个工程文件); 只是本人所写的后台案例,可以直接通过void main 测试。可读取单个sheet,也可以读取多个sheet。具体类名是 ReadWriteExcel.java