从NOTES视图中导出EXCEL表及word文档

原创 2004年09月07日 17:20:00

代码:

%INCLUDE "lsconst.lss"
%INCLUDE "lsxbeerr.lss"

Sub Initialize
 
 
 Dim session As New NotesSession
 Dim db As NotesDatabase
 Dim v As NotesView
 Dim docX As NotesDocument
 Dim col As Integer
 Dim lineitem As String 
 Dim View As String
 Set db = session.CurrentDatabase
 
 Print |Content-Type:application/vnd.ms-excel; charset=GB2312| 
 
 Print |Content-Disposition:Attachment; filename="Report.xls"|
' On Error Goto errorHandler
 
 View="$AttachmentView" ' 这里加上转换的视图名称
 Set v = db.GetView(View$)
 Call v.refresh
 col=1
 Print ||
 Print | <TABLE border=1>|
 lineitem=""
 Forall vColumn In v.Columns              
  If col=1 Then
   lineitem=| <TBODY> <TR> <TH align=middle><FONT color=#0000ff size=3>|+vColumn.Title
  Else
   lineitem=lineitem+|</FONT> <TH align=middle><FONT color=#0000ff size=3>|+vColumn.Title
  End If
  col=col+1
 End Forall
 lineitem=lineitem
 
 Print lineitem
 Set docX=v.GetFirstDocument
 lineitem=""
 While Not docX Is Nothing
  col=1
  Forall cValue In docX.ColumnValues
   
   If col=1 Then
    lineitem=|</FONT> <TR>|
   End If
   If cValue="" Then
    lineitem=lineitem+| <TD> </TD>|      
   Elseif Isdate(cValue) Then
    lineitem=lineitem+| <TD style="vnd: dd-mmm-yyyy" align=right>|+cValue+||<BR>   Elseif Isnumeric(cValue) Then
    If (v.columns(col-1).numberformat=3) Then
     lineitem=lineitem+| |+cValue+||
    Else 
     lineitem=lineitem+| <TD align=right>|+cValue+||<BR>    End If
   Else  
    lineitem=lineitem+| <TD>|+cValue+||
   End If
   col=col+1
  End Forall
  Print lineitem+||
  Set docX=v.GetNextDocument(docX)
 Wend
 Print |</TBODY></TABLE>|
 Exit Sub
 
errorHandler:
 Print "代理运行时出错 " & Err() & " : " & Error() & " - 行号为: "+Cstr (Erl) & Chr$(13)
 Exit Sub
 
End Sub

 

以上是指定一个视图,先顺序地读取其列头,然后顺序地读一条一条的记录,打印出来。选择不同的协议,如”Print |Content-Type:application/vnd.ms-excel; charset=GB2312| ”,打印excel文档、“Print |Content-Type:application/vnd.ms-word; charset=GB2312| ”,打印word文档。代理中其他相应的地方也要进行改动。

进行改进:可以通过让代理先读取一个config文件,里面事先指定好视图的名称、可以导出的列的名称及在视图中的序列号,这样首先通过一个选择页面进行选择,然后再导出。

Notes消除冲突文档

之前开发的xpages项目出现多个重复的文档,从BS端来看是多个相同文档,在CS端来看就是冲突文档,看了前辈留下的文档,下面介绍如何来消除冲突文档。 Domino 的数据库在使用的过程中,会因为复制...
  • liuchang__
  • liuchang__
  • 2015年07月27日 17:13
  • 687

IBM Notes常见问题及解决办法

问题: Notes客户端是否支持Win8系统,如何下载安装介质? 解决方法: 标题:Notes/Domino产品系统要求 链接:http://www-01.ibm.com/suppor...
  • zhpengfei0915
  • zhpengfei0915
  • 2015年04月25日 11:44
  • 10261

Lotus Notes 公式函数集

A @Abs 返回一个数字的绝对值(无符号值)。 @Abstract 英文缩写,中文无效 @Accessed 指出最后一次访问(即读取或编辑)该文档的时间和日期。   @Acos 使用角度的余...
  • wodemingzisiweiwei
  • wodemingzisiweiwei
  • 2013年07月30日 11:25
  • 1213

47. Lotus Notes中编程发送邮件(二)

在编程发送各种类似通知的邮件时,时常会需要发件人显示为某个特定的帐户,比如某个部门的名称或者管理员的名字。另一种需求是,用户收到某封邮件后,回复邮件的地址不同于发件人栏显示的地址。而正常情况下,发送邮...
  • starrow
  • starrow
  • 2013年08月17日 17:00
  • 6720

C#简单操作Lotus Notes邮件

前段时间简单的研究了一下.NET操作Lotus Notes邮件的实现,具体的操作包括邮件的读取和发送,而且都要包含附件,其间参考了《在 Microsoft .NET 应用程序中使用 IBM Lotus...
  • sinat_27305053
  • sinat_27305053
  • 2017年02月25日 17:17
  • 820

46. Lotus Notes中编程发送邮件(一)

邮件是Lotus Notes体系的核心和基本功能,以至于Send()是NotesDocument的一个方法,任何一个文档都可以被发送出去,Notes里的一封邮件也只是一个有一些特殊字段的文档。在程序开...
  • starrow
  • starrow
  • 2013年08月14日 17:24
  • 9127

Exchange & Lotus Notes邮件系统在线批量迁移账号及邮件

Exchange & Lotus Notes邮件系统在线批量迁移账号及邮件
  • aliasman
  • aliasman
  • 2016年07月19日 14:29
  • 1121

web项目导出excel表格

该功能涉及到两个知识点,一是制作excel相关插件的使用,二是导出文件,spring-mvc该如何配置 先说excel插件的使用,这次使用的是org.apache.poi包,版本是3.9,下面粘完整能...
  • yuan487639
  • yuan487639
  • 2017年07月27日 17:35
  • 241

关于从Domino外发的SMTP邮件地址形成的问题

问题描述: 如果Notes用户外发的SMTP邮件地址在收件人那里显示为类似与Joe_User/ou/org%org@internetdomain.org , 如何解决呢? 另外,此问题也可以...
  • Gavid0124
  • Gavid0124
  • 2014年12月19日 14:40
  • 859

C#也能动态生成Word文档并填充数据, 导出EXCEL 方法

要使用C#操作word,首先要添加引用:         1、添加引用->COM->Microsoft Word 11.0 Object Library        2、在.cs文件中添加 u...
  • wang463584281
  • wang463584281
  • 2014年03月19日 16:20
  • 1710
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从NOTES视图中导出EXCEL表及word文档
举报原因:
原因补充:

(最多只允许输入30个字)