- 浏览: 143868 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
lliiqiang:
因为纯查询不会产生数据逻辑错误,所以sql语句查询顺序可以被颠 ...
要提高SQL查询效率where语句条件的先后次序应如何写 使你的 SQL 语句完全优化 -
zqb666kkk:
哥们写的 不错 比网上其他 的齐全多了
oracle9i 冷备份 -
xianwu13:
Oracle truncate table, delete, drop table的区别 -
xianwu13:
讲的太好了 ,狂顶,
Oracle truncate table, delete, drop table的区别 -
xianwu13:
讲的太好了 ,狂顶,支持[size=xx-large][/si ...
Oracle truncate table, delete, drop table的区别
show.isp文件
<%@ page contentType="text/html;charset=gb2312" %> <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %> <%@ taglib uri="/WEB-INF/c.tld" prefix="c" %> <script> function selectAll(obj) { for(var i = 0;i<obj.elements.length;i++) if(obj.elements[i].type == "checkbox") obj.elements[i].checked = true; } function selectOther(obj) { for(var i = 0;i<obj.elements.length;i++) if(obj.elements[i].type == "checkbox" ) { if(!obj.elements[i].checked) obj.elements[i].checked = true; else obj.elements[i].checked = false; } } </script> <% int pageno = ((Integer)request.getAttribute("pageno")).intValue(); int totalpage = ((Integer)request.getAttribute("totalpage")).intValue(); %> <html> <body> <form action="loadfile.do" method="post" enctype="multipart/form-data"> <table><tr><td><input type="file" name="file" size="20"></td><td> <input type="submit" value="上传"></td></tr> </form> <form action="<%=request.getContextPath()%>/address.do?method=exportExcel" method="post" > <table><tr><td><input type="submit" name="import" value="IMPORT"></td><td> </td></tr> </form> </table> </body> </html>
调用 loadfile.jsp文件
<%@ page contentType="text/html; charset=GBK"%> <%@ page import="java.util.*"%> <%@ page import="com.jspsmart.upload.*"%> <% //@ page import="com.suntek.devmanager.web.SysParam" %> <%@ page import="java.io.*"%> <jsp:useBean id="smartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" /> <% request.getSession().removeAttribute("FileInputStream"); String contract_id = "", add_flag = ""; try { // SmartUpload smartUpload = new SmartUpload(); smartUpload.initialize(pageContext); //最大上传文件小于四兆 smartUpload.setTotalMaxFileSize(4096000); //上载文件 smartUpload.upload(); //取得上载的文件 com.jspsmart.upload.File lo_File = smartUpload.getFiles().getFile(0); byte[] fileContent = new byte[(int) lo_File.getSize()]; for (int k = 0; k < (int) lo_File.getSize(); k++) { fileContent[k] = lo_File.getBinaryData(k); } InputStream fs = null; if (!lo_File.isMissing()) { //取得上载的文件的文件名 fs = new ByteArrayInputStream(fileContent); //将文件写到数据库中 } request.getSession().setAttribute("InputStream", fs); //得到文件名 } catch (Exception e) { e.printStackTrace(); return; } %> <html> <head> <script language="javascript"> function Window_Onload() { document.all.manager.submit(); // window.returnValue = "true"; // top.close(); } </script> <title>有问题请和我联系</title> </head> <body leftmargin="0" topmargin="0" class="DialogOuter" onload="return Window_Onload();"> <form action="<%=request.getContextPath()%>/address.do?method=addExcel" method="post" name="manager"> </form> <br> <br> <br> <br> <div align="center"> 系统正在上传数据,请稍候!! </div> </body> </html>
action文件
package com.yourcompany.struts.action; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import org.jaxen.function.ext.LowerFunction; import com.dao.Service; import com.db.Conn; import com.tb.Factory.DaoFactory; import com.tb.hibernate.Address; import com.yourcompany.struts.form.AddressForm; /** * MyEclipse Struts Creation date: 05-16-2008 * * XDoclet definition: * * @struts.action path="/address" name="addressForm" input="/form/address.jsp" * scope="request" validate="true" */ public class AddressAction extends DispatchAction { /* * Generated Methods */ public ActionForward addExcel(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { //AddressForm addressForm = (AddressForm) form; try { InputStream is = (InputStream) request.getSession().getAttribute("InputStream"); //InputStream is = new FileInputStream("c://Address.xls"); Connection conn = Conn.Conn().getconn(); Service.service().importexcel(is,conn, "ADDRESS",5);// }catch (Exception e) { // TODO 自动生成 catch 块 e.printStackTrace(); } return mapping.findForward("index"); } public ActionForward exportExcel(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { Connection conn = Conn.Conn().getconn(); response.reset(); response.setCharacterEncoding("GBK"); response.setContentType("Application/msexcel;charset=gbk"); response.setHeader("Content-disposition","attachment; 导出数据.xls"); WritableWorkbook book = null; try { book = Workbook.createWorkbook(response.getOutputStream()); WritableSheet sheet = book.createSheet("数据", 0); Label label = new Label(1, 1, "1234"); sheet.addCell(label); book.write(); book.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // Service.service().exportexcel(conn, "ADDRESS");// return null; } }
调用的service文件
package com.dao; import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import com.db.Conn; import com.tb.hibernate.Address; /** * @author Administrator * */ /** * @author Administrator * */ public class Service { private static Service service = new Service(); public static Service service(){ if(service == null){ return new Service(); }else{ return service; } } /** * @author Administrator *获得table 表的字段类型或者字段名 *column_name,data_type */ public List getTypeNameOrColumnName(Connection conn, String tableName,String arg){ Statement ps = null; ResultSet rs = null; List<String> list = new ArrayList<String>(); String sql="select "+arg+" from user_tab_columns where table_name like '"+tableName+"'"; try { ps = conn.createStatement(); rs = ps.executeQuery(sql); while(rs.next()){ list.add(rs.getString(arg)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } /** * @author Administrator * 将导入的excle插入到table中 */ public boolean insertTable(Connection conn, String tableName, List<String> list,int colNum){ PreparedStatement ps = null; try { String columnName=""; List<String> columnList = getTypeNameOrColumnName(conn,"ADDRESS","column_name"); for(int i=0;i<colNum+1;i++){ columnName += columnList.get(i); columnName +=","; } columnName = columnName.substring(0,columnName.length()-1); conn.setAutoCommit(false); for(int j=0; j< list.size();j++){ String sql="insert into "+tableName+"("+columnName+") values(seq_a.nextval,"+list.get(j)+")"; ps = conn.prepareStatement(sql); ps.addBatch(); if (j % 100 == 0 ) { ps.executeBatch(); conn.commit(); }else{ ps.executeBatch(); conn.commit(); } } conn.setAutoCommit(true); }catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return true; } /** * * @param is excel文件流 * @param conn 数据连接 * @param tableName 表名 * @param colNum excel中数据列数 */ public void importexcel(InputStream is,Connection conn, String tableName, int colNum){ try{ jxl.Workbook rwb = Workbook.getWorkbook(is); Sheet[] sheets = rwb.getSheets(); // List<String> list = Service.service().getTypeNameOrColumnName(conn,tableName,"data_type"); int nullCol = list.size()-colNum; //后面不用复制的项数 List<String> listarray = new ArrayList<String>(); for(int i=0; i<sheets.length; i++){ Sheet sheet = sheets[i]; //k代表数据所在的行 for(int k=0; k<sheet.getRows(); k++){ Address address = new Address(); StringBuffer str = new StringBuffer(); for(int m=0;m<list.size()-nullCol;m++){ // for(int m=0;m<colNum;m++){ Cell cel1= sheet.getCell(m,k);//列,行, //将数据根据不同数据类型拼接为串 if(list.get(m+1).toUpperCase().indexOf("NUMBER")>-1 ||list.get(m+1).toUpperCase().indexOf("INT")>-1){// if(!"".equals(cel1.getContents())){ str.append(cel1.getContents()); }else{ str.append(0); } //DATE、DATETIME、TIME、TIMESTAMP to_date('2002-02-28','yyyy-mm-dd') }else if(list.get(m+1).toUpperCase().indexOf("DATE")>-1||list.get(m+1).toUpperCase().indexOf("TIMESTAMP")>-1 ||list.get(m+1).toUpperCase().indexOf("DATETIME")>-1||list.get(m+1).toUpperCase().indexOf("TIME")>-1){ String strdate =""; if(!"".equals(cel1.getContents())){ strdate = "to_date('"+cel1.getContents()+"','yy-mm-dd')"; } str.append(!"".equals(cel1.getContents())?strdate:"NULL"); }else{ str.append("'"); str.append(!"".equals(cel1.getContents())?cel1.getContents().trim():cel1.getContents()); str.append("'"); } str.append(","); } listarray.add(str.toString().substring(0, str.toString().length()-1)); } } Service.service().insertTable(conn,tableName,listarray,colNum); }catch(Exception e){ e.printStackTrace(); } } }
导出excle
//long eid = Long.parseLong(request.getParameter("eid").toString());
String path = request.getSession().getServletContext().getRealPath(
"/"
+new Date().getTime()+"test.xls");
OutputStream os = new FileOutputStream(path);
WritableWorkbook wwb = null;
try {
wwb = Workbook.createWorkbook(os);
} catch (IOException e) {
e.printStackTrace();
}
if(wwb!=null){
//创建一个可写入的工作表
//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("工作表名称", 0);
String[] arrname = {"订单编号","客户姓名", "移动电话","办公电话", "EMAIL", "订单金额" };
writesheet(ws,arrname,0);
List list = new ArrayList();
long eid = 0;
List<ListTail> listtail = new ListTailDao().getListTailinfo(eid);
for(int i=0;i<listtail.size();i++){
String [] arr = {listtail.get(i).getListid()+"",listtail.get(i).getCustomer()+"",
listtail.get(i).getCphone()+"",listtail.get(i).getCtel()+"",
listtail.get(i).getCemail()+"",listtail.get(i).getListprice()+""};
writesheet(ws,arr,1+i);
}
//下面开始添加单元格
try {
//从内存中写入文件中
wwb.write();
} catch (IOException e) {
e.printStackTrace();
}finally{
wwb.close();
os.close();
}
}
downfile(path,response);
java.io.File myDelFile = new java.io.File(path);
myDelFile.delete();
return null;
/*response.setContentType("text/html;charset=utf-8");
response.setHeader("Cache-Control", "no-cache");
System.out.println("**************");
response.getWriter().write("9874");
return null;*/
}
public void writesheet( WritableSheet ws,String [] arr,int rowsize){
for(int colsize=0;colsize<arr.length;colsize++){
Label labelC = new Label(colsize,rowsize,arr[colsize]);
try {
ws.addCell(labelC);
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void downfile(String path,HttpServletResponse response) throws Exception{
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
OutputStream fos = null;
InputStream fis = null;
String filepath = servlet.getServletContext().getRealPath("/" + path);
File uploadFile = new File(path);
fis = new FileInputStream(uploadFile);
bis = new BufferedInputStream(fis);
fos = response.getOutputStream();
bos = new BufferedOutputStream(fos);
try{
response.setContentType("application/ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" +
URLEncoder.encode(path, "utf-8"));
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = bis.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
} catch (Exception e){
e.printStackTrace();
}finally{
bos.flush();
fis.close();
bis.close();
fos.close();
bos.close();
}
}
发表评论
-
struts + hibernate + spring 用到的jar包
2010-05-28 12:58 802自己在打框架的时候 总是碰到些问题。 可能是水平有限,后来就 ... -
SHH startup failed due to previous errors
2010-05-27 22:07 983好久没有弄struts +hibernate +spring ... -
struct乱码问题
2010-05-24 21:44 1652㈠页面显示中文乱码 ㈡传递参数中文乱码 ㈢国际化资源文件乱码 ... -
去除数组中的重复数据
2010-03-29 11:55 2522去除数组中的重复数据 ... -
双击Eclipse,弹出一个错误窗口
2010-01-11 14:16 2405双击Eclipse,弹出一个错误窗口: Version 1.3 ... -
jndi 数据连接池
2009-12-29 17:25 785数据连接池配置 全局 、局部配置之分 下面就我玩的全局的 ... -
java的反射机制
2009-09-29 11:34 585JAVA反射机制是在运行 ... -
java基础之将class打成jar包
2009-09-28 16:25 2560若要生成一个名为 Itext.jar 的可执 ...
相关推荐
JAVA中excel导入导出通用方法 JAVA 中 excel 导入导出通用方法是指在 Java 项目中实现 excel 文件的导入和导出功能。这种方法可以应用于各种需要 excel 文件交互的业务场景中。 一、引入依赖 在 Java 项目中想要...
这是一个利用poi封装的excel导入导出通用组件,详细用法请访问:http://fuyangrong.top/2018/01/29/excel导入导出通用组件/
标题 "多功能通用Excel导入导出数据" 描述的是一个针对Excel数据处理的工具或库,它已经被二次封装,简化了导入导出操作。用户只需引入指定的jar包,并通过一行代码即可实现数据的导入和导出功能。描述中强调了其...
本篇文章将深入探讨“C#通用Excel导入导出工具类”的实现原理及应用,主要涉及的技术点包括反射、特性以及如何创建一个高效的Excel导入导出解决方案。 首先,我们要理解反射在C#中的作用。反射是一种强大的机制,它...
本示例将详细介绍如何利用易语言进行EXCEL快速导入导出的操作。 首先,我们需要了解易语言中与Excel相关的基础组件和函数。易语言提供了一个名为“通用数据访问组件”的模块,其中包含了读取和写入Excel文件所需的...
在这个“通用的Excel导入导出”项目中,我们看到作者创建了一个类来实现这个功能,让我们详细了解一下相关的知识点。 1. **Apache POI**:这是Apache软件基金会的一个开源项目,它提供了一组API,专门用于读写...
"Excel导入导出"这一主题涵盖了如何将数据从外部源引入Excel以及如何将Excel数据导出到其他应用程序或格式。以下是对这一主题的详细解释: 1. **Excel导入**: - **CSV文件导入**:CSV(Comma Separated Values)...
这样,不同模块或功能只需要调用这个通用工具,即可实现Excel的导入导出和校验,提高了代码的复用性。 6. **异常处理**:在实现这些功能时,还需要考虑异常处理机制。例如,当导入数据失败时,应当提供清晰的错误...
总结起来,Java导入导出通用模板是利用自定义注解提供元数据,通过反射实现动态操作,结合Java POI库处理Excel文件,以实现数据的灵活导入和导出。这种模板化的设计模式在Java开发中具有广泛的应用价值,尤其是在...
尤其是在企业级应用系统中,如NC65这样的企业管理软件,UAP(通用应用平台)提供了标准化的导入导出功能,使得数据管理更为高效便捷。本文将深入解析UAP标准导入导出功能的相关处理规则、基本操作示例及其拓展应用。...
本工具是基于Java反射机制实现的通用Excel导入导出类,它提供了便捷的方式来读取和写入Excel文件,适用于多种场景。下面我们将深入探讨这个工具的工作原理、使用方法以及相关的Java Excel处理知识。 1. **Java反射...
在提供的“java-excel导入导出”压缩包中,可能包含了示例代码、说明文档以及测试数据,可以帮助初学者快速理解和使用Java POI进行Excel操作。通过学习和实践这些示例,你可以掌握Java POI库的基本用法,并能灵活...
。net通用导入导出 excel 类,返回datatable
标题中的“一个通用从数据库导出excel、excel导入数据库组件所用到的jar包”指的是一个Java开发的工具,主要用于数据的导入导出操作。这个工具可以方便地将数据库中的数据导出为Excel格式,同时也可以将Excel文件中...
C# WinForm 下 Excel 导入导出 C# WinForm 下 Excel 导入导出是指在 Windows 窗体应用程序中使用 C# 语言实现 Excel 文件的导入和导出功能。这种功能在实际应用中非常重要,因为 Excel 文件是一种通用的数据交换...
标题“Excel导入导出数据库小工具源码”指的是一个编程工具,它的主要功能是协助用户在Excel电子表格和各种数据库之间进行数据的导入与导出。这个工具对于数据处理、分析或者需要频繁交换数据的场景非常有用,尤其...
在这个"通用excel导入/导出 (poi)"的示例中,我们主要关注的是Excel文件的处理,特别是如何利用POI库进行数据的导入和导出。下面将详细介绍这个过程中的关键知识点。 首先,让我们了解一下Apache POI。它是Apache...
总结,"poi导入导出Excel通用工具类 兼容xls,xlsx"这个工具实现了利用Apache POI库处理Excel文件的功能,涵盖了从旧版的.xls到新版的.xlsx格式,提供了方便的导入和导出接口,使得在Java开发中处理Excel数据变得...
在IT行业中,数据处理是一项至...总的来说,基于Aspose的C# Excel导入导出实现是一个实用的工具,它能够提高开发效率,使得数据处理变得更加便捷。无论是数据分析、报表生成还是数据交换,都能够利用此类工具高效完成。
【Excel导入导出数据库小工具】是一款基于C/S(客户端/服务器)架构的应用程序,它主要功能是方便用户将Excel数据高效地导入到数据库中,同时也能从数据库中导出数据到Excel文件。这款工具是C#编程语言实现的,为IT...