真是难以想象,一天的时间,我也整出来了一个
VBScript
的应用,看来微软的这些东西还是有那么点可取之处的,别的不说,就说
word
里录制宏和
word
里带的
Vb
的帮助文档,就省去了不少麻烦。废话不多少,代码说话。
需求为:查询某种类型的记录,然后在表格中显示其部分属性,并按照月份分成几个小表格,打印到
word
中,并将此
word
内容作为另一种记录的一个附件。
写了个测试例子,贴代码
首先是个
Bean
package com.test;
public class Bean {
public String title;
public String date;
public String status;
public Bean(String title,String date,String status){
this.title = title;
this.date = date;
this.status = status;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
JSP中按照月份分组部分
Bean bean1 = new Bean("测试一","2007-11-12","已办理");
Bean bean2 = new Bean("测试二","2007-12-12","已办理");
Bean bean3 = new Bean("测试三","2008-10-12","已办理");
Bean bean4 = new Bean("测试四","2008-11-12","已办理");
Bean bean5 = new Bean("测试五","2007-11-20","已办理");
Bean bean6 = new Bean("测试六","2008-11-12","已办理");
ArrayList list = new ArrayList();
list.add(bean1);
list.add(bean2);
list.add(bean3);
list.add(bean4);
list.add(bean5);
list.add(bean6);
String[] yearAndMonth = new String[48];//4*12=48,存储某年某月
for(int i = 0;i < yearAndMonth.length;i ++){//数组初始化
yearAndMonth[i] = "";
}
HashMap hp = new HashMap();//存放某年某月的记录列表
int index = 0;//数组的索引
for(int i = 0;i < list.size();i ++){
Bean bean = (Bean)list.get(i);
String beginTime = bean.getDate();
boolean needAdd = true;//标记是否需要添加
for(int j = 0;j < index;j ++){
if(beginTime.substring(0,7).equals(yearAndMonth[j])){//如果某年某月已经有记录
needAdd = false;//不需要添加
break;
}
}
if(needAdd){//需要添加
yearAndMonth[index] = beginTime.substring(0,7);//改写数组对应索引处的值
//新建List保存记录并存储到Map
ArrayList listByTime = new ArrayList();
listByTime.add(bean);
hp.put(beginTime.substring(0,7),listByTime);
index ++;
}else{//不需要添加
//从Map中得到对应的List,并在此添加记录
((ArrayList)hp.get(beginTime.substring(0,7))).add(bean);
}
}
for(int j = 0;j < index;j ++){
out.print(yearAndMonth[j]);
out.println("<br>");
if(hp.get(yearAndMonth[j])!=null){
ArrayList a = (ArrayList)hp.get(yearAndMonth[j]);
out.print("有"+a.size()+"个:");
for(int x = 0;x < a.size();x ++){
Bean bean = (Bean)a.get(x);
out.print(bean.getDate()+" ");
}
out.println("<br>");
}
}
然后是写入到制定位置的word文件中
<script language="vbscript">
function writeListToWord()
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.GetFile("E://test.doc")
MyFile.Copy ("E://test1.doc")
Set myDocApp = CreateObject("Word.Application")
myDocApp.Visible = True
myDocApp.Activate
set myDoc = myDocApp.Documents.Open("E://test1.doc")
'Set myDoc = myDocApp.Documents.Add()
Set objSelection = myDocApp.Selection
<%
for(int j = 0;j < index;j ++){
if(hp.get(yearAndMonth[j])!=null){
ArrayList a = (ArrayList)hp.get(yearAndMonth[j]);
%>
Set table1 = objSelection.Tables.Add(objSelection.Range, <%=a.size()+1%>, 3)
Set Table1 = myDoc.Tables(<%=j+1%>)
Table1.Cell(1,1).Range.Text = "标题"
Table1.Cell(1,2).Range.Text = "发布时间"
Table1.Cell(1,3).Range.Text = "状态"
<%
for(int x = 0;x < a.size();x ++){
Bean bean = (Bean)a.get(x);
%>
Table1.Cell(<%=x+2%>,1).Range.Text = "<%=bean.getTitle()%>"
Table1.Cell(<%=x+2%>,2).Range.Text = "<%=bean.getDate()%>"
Table1.Cell(<%=x+2%>,3).Range.Text = "<%=bean.getStatus()%>"
<%
}
%>
for i = 1 To Table1.Rows.Count
objSelection.MoveDown
next
objSelection.TypeText "新的循环开始"&vbCrLf
<%
}
}
%>
myDoc.close()
myDocApp.quit()
Set MyFile = fso.GetFile("E://test1.doc")
MyFile.Copy ("E://test.doc")
MyFile.delete()
end function
</script>
OK,代码就是这些了,但是测试的话要加入受信站点,既允许读写本地文件
分享到:
相关推荐
即用即查——ASP+VBScript函数与对象参考手册 即用即查——HTML+CSS标签参考手册 即用即查——JavaScript核心对象参考手册 即用即查——JSP函数与对象参考手册 即用即查——XML数据标记语言参考手册 都是很好的参考...
基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍...
JAVA 实现 JSP+SQL计算机等级考试查询系统(源代码+word文档+答辩PPT) JAVA 实现 JSP+SQL计算机等级考试查询系统(源代码+word文档+答辩PPT) JAVA 实现 JSP+SQL计算机等级考试查询系统(源代码+word文档+答辩PPT)...
计算机毕业设计成品 JAVA jsp+sql即时通讯工具(系统源码+Word文档) 计算机毕业设计成品 JAVA jsp+sql即时通讯工具(系统源码+Word文档) 计算机毕业设计成品 JAVA jsp+sql即时通讯工具(系统源码+Word文档) 计算机毕业...
计算机毕业设计成品 JAVA JSP+SQL计算机等级考试查询系统(源代码+word文档+答辩PPT) 计算机毕业设计成品 JAVA JSP+SQL计算机等级考试查询系统(源代码+word文档+答辩PPT) 计算机毕业设计成品 JAVA JSP+SQL计算机...
大学本科JSP课程的期末作业JSP+Servlet+layui实现的博客系统源码。教程 下载使用tomcat就可以使用,数据库语句也有,如果要修改数据库配置就在tool下面的工具类修改即可大学本科JSP课程的期末作业JSP+Servlet+layui...
jsp+servlet+jdbc实现简单的购物车实例,购物数据通过session存储 1、加入购物车时,把数据保存在session中 2、点击系统退出时,购物车中的数据插入到数据库购物车表 3、再次登录时,查询数据库购物车表的数据加载到...
JAVA 实现 jsp+sql网络书店销售管理系统(word文档+任务书+开题报告+中期检查表+摘要+英文文献) JAVA 实现 jsp+sql网络书店销售管理系统(word文档+任务书+开题报告+中期检查表+摘要+英文文献) JAVA 实现 jsp+sql网络...
JSP+Servlet + JDBC+MySQL 注册和登录
基于Jsp+Servlet+JavaBean+JDBC实现登录功能,简单实例
jsp+servler+sql购物车 清空 生成订单 mvc模型
通过JSP+servlet+javabean实现购物车,里面有mysql数据库以及javaee实现的代码,分页,购物车的实现
JSP+Servlet+JavaBean制作简单留言板
留言管理程序01(进阶一)_JSP+JDBC实现留言管理程序01(进阶一)_JSP+JDBC实现留言管理程序01(进阶一)_JSP+JDBC实现留言管理程序01(进阶一)_JSP+JDBC实现留言管理程序01(进阶一)_JSP+JDBC实现留言管理程序01...
Jsp+JavaBean+Servlet(MVC设计模式)的寝室管理系统 Jsp+JavaBean+Servlet(MVC设计模式)的寝室管理系统 Jsp+JavaBean+Servlet(MVC设计模式)的寝室管理系统
计算机毕业设计成品JAVA实现 jsp+sql网络书店销售管理系统(word文档+任务书+开题报告+中期检查表+摘要+英文文献) 计算机毕业设计成品JAVA实现 jsp+sql网络书店销售管理系统(word文档+任务书+开题报告+中期检查表+...
jsp+servlet+javabeans示例
系统采用技术:Servlet+jsp+mysql+jQuery+bootstrap+面向接口编程 系统管理员: 个人信息管理,课程管理,成绩管理,学生信息管理,教师管理,所有账号管理等。 教师: 个人信息管理,课程管理,成绩管理,...
使用Oracle数据库+Eclipse+MyEclipse,JSP+Servlet+JavaBean的基本组合,适合刚刚学习JSP的朋友参考一下~