- 浏览: 459954 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
JS操作XMLDOM(遍历和打印) -
lliiqiang:
我这边只要出现图表组件就报告2032号错误。
Flex 出现 Error #2032 是什么意思 -
全保生:
感谢!方法一:(已确认 可行)String username ...
jsp 的url传参中文乱码问题解决办法 -
dy804731771:
谢谢您的分享,对我有帮助
兼容的带样式的INPUT -
huang305585796:
火影头像好屌
FusionCharts统计图导出为图片或pdf
1使用jsp+struts导出带有表格的word 要点包括:1中文乱码;2以word形式保存文件;3struts标签的基本使用;4 <%@ page language="java" pageEncoding="utf-8" %> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <% String name =request.getAttribute("name").toString(); name = new String(name.getBytes("GBK"),"ISO8859-1")+""; response.setHeader("Content-disposition","attachment; filename="+name+".doc"); %> </head> <body> <s:if test="${baseType}==0"> <h2 >1.A基本信息</h2> <table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='width:400pt;font-size:10.0pt;border-collapse:collapse;mso-padding-alt:0cm 0cm 0cm 0cm'> <tr height=30 style='height:22.5pt'> <td style="width:60pt;">姓名</td> <td><s:property value="personInfo.XM"/></td> <td style="width:60pt;">性别</td> <td><s:property value="personInfo.NL"/></td> </tr> </table> <h3 >1.2 A扩展信息</h3> <table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='width:400pt;font-size:10.0pt;border-collapse:collapse;mso-padding-alt:0cm 0cm 0cm 0cm'> <s:iterator value="personInfo.kzxxList" status="stat"> <tr height=19 style='height:14.25pt'> <td style="width:70pt;"><s:property value="typeName" escape="false"/></td> <td><s:property value="beanValue" escape="false"/></td> </tr> </s:iterator> </table> </s:if> <s:elseif test="${baseType}==1"> <h2 >1.B基本信息</h2> </s:elseif> <h2 >2.关联信息</h2> <s:if test="docList.size()>0"> <h3>文档</h3> </s:if> </body> </html> 2 Java将数据导入到Access数据库要点 /** * 【业务共享】将指定了Id(由ids决定)的业务数据(由beanType决定)的某些字段(由props决定)导出到access * @param ids 即将导出的数据的id集合。 * @param props 导出数据的那些属性 * @param beanName 业务表的bean名称 * @return */ private synchronized final int exportData(List<String> ids,String props,String beanType){ if(T.isNullList(ids)){return 0;}else{T.print("一共有"+ids.size()+"条数据即将导出");} if(T.isNull(props)){return 0;} //TODO 基础变量 String filePath = T.getRealyPath()+"template/bussShare.mdb"; String tableName = Constant.BASEINFO_ZZ.equals(beanType)?"表B":Constant.BASEINFO_MZ.equals(beanType)?"表C":"表A"; try { //创建jdbc连接。 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Properties prop = new Properties(); Connection conn = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+filePath+";", prop); Statement st = conn.createStatement(); //TODO 删除旧表 try{st.execute("drop table 表A");}catch(Exception e){ } try{st.execute("drop table 表B");}catch(Exception e){ } try{st.execute("drop table 表C");}catch(Exception e){ } //TODO 创建新表。 StringBuffer buffer=new StringBuffer(500); buffer.append("create table ").append(tableName).append("(id integer");//主键ID String[] colNames = T.getJSON(props, "before").split(","); for (int i = 0; i < colNames.length; i++) { buffer.append(",").append(colNames[i]).append(" memo "); } buffer.append(" ) ");//TODO carate table最后一个括号。 st.execute(buffer.toString()); //TODO 创建新表。END //TODO 从gx读取数据,同时写入access数据表中。 String[] colArr= T.getJSON(props, "after").split(","); int propSize = colArr.length;//有这么些字段。 //TODO 拼凑插入数据的sql模板。 StringBuffer insertBaseBuffer=new StringBuffer(500); insertBaseBuffer.append("insert into "+tableName+" values( {id}"); for (int i = 0; i < propSize; i++) { insertBaseBuffer.append(",").append("{"+colArr[i].toLowerCase().trim()+"}"); } insertBaseBuffer.append(")"); String insertBase = insertBaseBuffer.toString(); //TODO 拼凑插入数据的sql模板END //根据模板,生成带有真实数据的sql插入数据 String insertsql ; int len = ids.size(); PersonInfoLogic personLogic = (PersonInfoLogic) ApplicationContextHolder.getBean("personInfoLogic"); Object obj = ""; ElecaddressInfo e; OrgInfo o; PersonInfo p; Method[] ms; Method m; String _name; String oValue ; for ( int i=0; i < len; i++) { insertsql = insertBase.replace("{id}", (i+1)+""); p = personLogic.get(ids.get(i)); personLogic.convertDic(p, "view"); obj = p; ms = obj.getClass().getMethods();//TODO 所有get方法和set方法的集合。 for(int j=0;j<ms.length;j++){ if(ms[j].getName().indexOf("get")>=0){//只要get方法。 m = ms[j]; _name = m.getName().replace("get", "").toLowerCase(); oValue =T.isNull((m.invoke(obj, null)+""),"").toString(); insertsql = insertsql.replace("{"+_name+"}", addChar(oValue)); } } st.execute(insertsql); if(i%50==0){ T.print(i); } } st.clearBatch(); st.close(); } catch (Exception e) { e.printStackTrace(); } return 0; } 3 使用freemarker导出数据 /** * 使用freemark导出数据 * @param id 数据ID * @param dataType 数据类型 * @return 生成的物理文件的物理路径 */ public static String exportByFreeMark(String baseId,String dataType){ PersonInfoLogic personInfoLogic = (PersonInfoLogic) ApplicationContextHolder.getBean("personInfoLogic"); try { Configuration cfg=new Configuration(); String filePath = WebUtil.getBasePath()+"template"; cfg.setDirectoryForTemplateLoading(new File(filePath)); cfg.setObjectWrapper(new DefaultObjectWrapper()); Template temp=cfg.getTemplate("toword.xml","GBK"); Map root=new HashMap();//根 List<Map> personlist = new ArrayList<Map>();//关联数据对象 root.put("dataType", "person");//数据类型使用dataType做标识 PersonInfo instance = personInfoLogic.getViewObj(baseId, null); Map map_person = FreeMarkTool.converPerson(instance); root.put("person",map_person);//对象主题数据 String imgPath = WebUtil.getBasePath()+"images/no_image.jpg"; root.put("image", T.getFileEncode(imgPath));//图片信息 Date currDate=new Date(); String name=DateUtil.formatDateTime(currDate, "yyyy-MM-dd")+"_"+currDate.getTime();//文件名 String fileUrl = "upload/file/"+name+".doc"; File file = new File(T.getRealyPath()+fileUrl); if(file.exists()){file.delete();} FileOutputStream fos = new FileOutputStream(file); Writer out=new OutputStreamWriter(fos,"GBK"); temp.process(root, out); out.flush(); fos.close();//TODO 必须关闭文件输出流 否则不能删除临时文件。 return fileUrl; } catch (Exception e) { e.printStackTrace(); }finally{ //清空缓存。 personInfoLogic.getPersonInfoDAO().getHibSession().clear(); } return null; } /** * 将一个数据对象转变成map对象 * @param instance 数据对象 * @return 使用map模拟的数据对象 */ public static Map converPerson(PersonInfo instance){ String json = "name:{0},age:{1}"; Object[] params = new Object[50]; params[0] = T.isNullHTML(instance.getName(),"--"); params[1] = T.isNullHTML(instance.getAge(),"--"); json = MessageFormat.format(json, params); Map map = T.getMapFromJSON(json); return map; } 3 freemarker标签 备注:首先使用word另存为生成xml模板,然后替换内容。 <#if dataType=="person"> ${obj.Name} <#list kzxxList as kzxx_item> ${kzxx_item.typeName} </#list> <#elseif dataType=="orginfo"> <#else> <w:p><w:r><w:t>无</w:t></w:r></w:p> </#if> <#if personlist?size gt 0 > </#if>
发表评论
-
Flex获取当前地址栏和URL参数
2013-03-11 11:33 3174var query:String=ExternalInter ... -
<!DOCTYPE html>很重要
2012-12-31 16:16 125284噩梦开始的源头:之前 ... -
获取行政区划地名地址的简称
2012-12-27 09:33 2356做地图相关的项目就会涉及到地名地址的查询,那么查询 ... -
jsURL编码
2012-11-27 11:03 1190js 对文字进行编码涉及3个函数:escape,encod ... -
scrollHeight、clientHeight ,offsetHeight 区别
2012-11-22 10:00 1595我认为我们想要两个东西: 一是 scroll ... -
图片延迟加载(兼容IE&FF&Chrome)
2012-11-17 14:02 2741经常看到京东,团购有 ... -
获取FireFox下的event
2012-11-14 17:28 992/* 获取FF下当前事件对象 */ function ... -
让title动起来
2012-11-12 17:47 656function newTitle() { v ... -
JS读取本地文件夹和图片异步加载(图片LazyLoad)
2012-11-01 11:52 8760/* 说明:当某一个页面拥有非常多的图片或者使用图片列 ... -
javascript 理论片
2012-10-30 15:12 1592/* 前缀规范 每个局部变量都需要有一个类型前 ... -
获取DOM对象的当前(current)样式
2012-09-28 17:19 3480/** *获取页面某个元素当前的样式:(譬如获取当前I ... -
javaweb系统的枚举设计
2012-09-24 15:42 3840/* 组件目的: 在java-web程序的研发过程 ... -
http代理
2012-09-20 10:09 1791<%@ page language="j ... -
css文本样式系小结
2012-09-18 17:08 1244超链接带图标和文字, ... -
兼容的带样式的INPUT
2012-09-18 10:21 10969<style> /* 作用描述:给IN ... -
JS获取客户端浏览器基本信息
2012-09-12 15:33 1754/* * 工具类获取: * 客户端浏览器的类型,版本 ... -
css hack积累
2012-09-07 14:57 1192<html xmlns:wfs=" ... -
常用脚本
2012-09-03 18:28 1013换行: -word-wrap:break-word; w ... -
解析xml字符串
2012-08-31 09:08 1079工具方法:createXmlDOM /* * ... -
sortTable组件
2012-08-30 11:28 1327#sortTable.js /* 说明 ...
相关推荐
该项目是一款基于freeRTOS操作系统和STM32F103x微控制器的手机远程控制浴室温度系统设计源码,共包含1087个文件,包括580个C语言源文件、269个头文件、45个汇编源文件、36个数据文件、36个目标文件、35个编译规则文件、28个包含文件、27个文本文件、6个源文件、3个归档文件。此系统通过手机远程实现对浴室温度的有效控制,适用于智能浴室环境管理。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。