真是难以想象,一天的时间,我也整出来了一个
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,代码就是这些了,但是测试的话要加入受信站点,既允许读写本地文件
分享到:
相关推荐
JAVA班主任管理系统毕业论文(源代码+word论文) 课题背景 随着现在教育事业的不断发展,信息技术对社会进步和国名经济发挥着越来越大的促进作用,并对传统的思想观念、工作方式产生巨大的冲击。世界已进入信息化时代...
2. **编程语言**:JSP使用Java,而ASP则使用JavaScript或VBScript。 3. **Web服务器支持**:JSP兼容多种Web服务器,如Apache、Resin、Tomcat和IIS,而ASP主要限于Microsoft IIS或Personal WebServer。 4. **操作...
支持脚本:JavaScript,VBScript 支持服务器:Windows NT,Windows 2003,Windows XP,Windows Vista,Windows 7,Linux 支持编辑器:CKEditor3.x,FCKeditor2.x,NicEdit,TinyMCE,jwysiwyg,Xinha,Openwysiwyg,Free Rich ...
通过集成WebWord,开发者可以轻松地在ASP、ASP.NET或JSP等Web应用程序中实现对Microsoft Word文档的全面操作,无需用户在本地安装Word软件。 在描述中提到,WebWord控件不仅支持文档操作,还能与各种通用数据库进行...
1. 语言选择:ASP主要使用VBScript和JavaScript,而PHP和JSP则分别使用PHP和Java语言,Java通常被认为更强大,但PHP和JavaScript更易学。 2. 执行机制:ASP脚本在服务器端执行,而PHP可以同时在服务器端和客户端执行...
4. **ActiveX嵌入**:在JSP中嵌入ActiveX控件,通常需要JavaScript或VBScript来调用控件的方法和属性。这可能涉及到跨域安全设置和用户权限管理。 5. **Java与ActiveX交互**:由于Java不直接支持ActiveX,开发者...
19. Word段落标记:段落标记在打印时不被打印出来。 20. Visual FoxPro删除记录:SQL的DELETE命令可以直接删除记录,无需先用USE命令打开表,而传统的Visual FoxPro DELETE命令则需要先打开表。 以上是根据题目...
这些知识点涵盖了Java编程、数据库管理、SQL语法、C语言特性、Web开发、操作系统原理、VBScript、音频文件格式、网络域名、数据库设计原则、Word操作、PowerPoint动画、数组操作、字符串处理、浏览器功能以及逻辑...
16. JSP页面间传递数据:在b.jsp中,使用`<jsp:include page="a.jsp" flush="true"><jsp:param name="loginName" value="${loginName}" /></jsp:include>`或`<jsp:forward page="a.jsp"><jsp:param name="loginName...
例如,`.doc`文件应设置为`application/msword`,而二进制文件则通常设置为`application/octet-stream`。 2. **设置Content-Disposition**:这个响应头用于指定下载行为,其值通常为`attachment`,后跟一个`filename...
11. JSP 引入JavaBean:在JSP中,使用`<jsp:useBean>`标签来引入JavaBean,正确的方式是`<jsp:useBean id="beanName" class="fully.qualified.className" scope="scope">`。 12. Word2003 主题设置:在Word中,可以...
21. JSP页面间传递数据:使用`request.getAttribute()`和`response.sendRedirect()`可以在JSP页面间传递数据。 22. E-R图到关系模型转换:属于数据库设计的逻辑设计阶段。 23. 多任务系统中的进程:每个独立执行的...
这些题目涵盖了计算机基础知识的多个方面,包括网页设计(CSS)、数据库管理(Visual FoxPro)、编程(JavaScript、VBScript)、Web开发(JSP)、文本编辑(Word2000)、数据库设计(Access)、数据库管理系统...
以上就是针对计算机二级等级考试题库中涉及的知识点的详细解析,涵盖了编程语言(如Java、VBScript)、数据库操作(MySQL)、办公软件(Word、PowerPoint)、网络协议、Web开发(JSP、Servlet)、操作系统(Windows...
1. JSP标准动作:在JSP中,`<jsp:useBean>`可以用来创建和初始化bean,如果对象不存在,它会在请求作用域中创建一个新的bean实例。 2. MySQL权限管理:在MySQL中,`CREATE USER`权限只能由具有`CREATE USER`或`...
主要包括编程语言基础(如VBScript)、文件操作、HTML标记、数据库概念、软件工程、操作系统、面向对象编程、事件处理、网络通信、编程语法以及办公软件应用(如Word和PowerPoint)。下面将对这些知识点进行详细解释...
3. Word快捷键:Ctrl+Home是Word中的快捷键,用于将光标快速移动到文档的开头。 4. 字段大小属性:在数据库管理中,字段大小属性用于限制输入数据的长度,OLE(Object Linking and Embedding)是微软的一种技术,...
26 支持简洁高效的编程接口 支持二次开发,可使用Javascript和VBScript对控件进行编程。可以完全控制Office文档。 27 支持HTTP协议,HTTPS OVER SSL协议 对HTTPS协议的支持使得可以创建更加安全的应用。并且自动...
28. 动态网页语言:常见的动态网页编程语言有PHP、ASP.NET、JSP、Python等。 这些知识点涵盖了计算机二级等级考试中常见的内容,包括编程语法、数据库操作、网页开发、操作系统特性、数据结构以及办公软件应用等...