Domino中导入数据到excel

本文介绍了使用JavaScript和LotusScript在Domino环境中将数据导出到Excel的两种方法。JavaScript方法通过激活Excel对象并利用其粘贴功能实现,而LotusScript方法则涉及自定义一个Excel操作类,用于插入、合并单元格等操作。

    在csdn和一些其他的技术论坛逛得久了,越来越有一种想安定下来的感觉,于是在博客园找到一片栖身之处,决定在这里长期驻扎,每每写下自己技术之路上的一些问题和见解思路,希望对爱好技术的朋友和自己以后的开发有一些帮助,由于工作很忙,可能不是总是时时会来这里驻足,希望广大同行们一起探讨,由于是博客的开篇,我先从基础做起,贴一份Domino中导入数据到excel的程序实例,如果大家有更好更方便更快捷的方法,希望指教。

    我用了两种方法来实现数据的到处,即JavaScript和lotusscript方法。

   一、JavaScript方法:(我是直接用的复制的方式)

   

ContractedBlock.gifExpandedBlockStart.gifCode
function toexcel(tableid) 

{

var curTbl = document.getElementById(tableid);

 
var oXL = new ActiveXObject("Excel.Application"); 

var oWB = oXL.Workbooks.Add(); 

 
var oSheet = oWB.ActiveSheet; 

var sel = document.body.createTextRange(); 

sel.moveToElementText(curTbl); 

sel.select(); 

sel.execCommand(
"Copy"); 

oSheet.Paste();oXL.Visible 
= true

}

二、lotusscript方法:

  首先可用先自己定义一个excel的类,类包括一些必要的属性和自身的一些方法,定义如下:

 

ContractedBlock.gifExpandedBlockStart.gifCode
Class Excelreport
 
Private xlApp As Variant
 
Sub new()
  
Set xlApp = CreateObject("Excel.application")
  xlApp.Workbooks.Add
  xlApp.Visible 
= True
 
End Sub
 
 
Function saveFile(strFilePath As String)
  xlApp.ActiveWorkbook.SaveAs( strFilePath )
 
End Function
 
 
Function insertData(intSheet As Integer,row As Integer,column As Integer,value As String)
  xlApp.Workbooks(
1).Worksheets( intSheet ).Cells( row , column ).Value = value 
 
End Function
  
 
Function getData( intSheet As Integer , row As Integer , column As Integer ) As String
  getData 
= xlApp.Workbooks(1).Worksheets( intSheet ).Cells( row , column ).Value
 
End Function
 
 
Function doQuit
  xlApp.Quit
  
Set xlApp = Nothing
 
End Function
ExpandedBlockStart.gif代码
Sub Unionexcel(intSheet As Integer,strRow1 As Integer ,strCols1 As Integer,strRow2 As Integer ,strCols2 As Integer
%
REM
  函数说明:合并excel单元格
  参数说明:intSheet:excel的sheet
    strRow1:行数1 
2 3
    strCols1:列名,
1 2 3..
    strRow2:行数1 
2 3
    strCols2:列名,
1 2 3..  
%
END REM
  Dim obj As Variant
  
Set obj=xlApp.Workbooks(1).Worksheets( intSheet )
  
  xlApp.Range(obj.Cells(strRow1,strCols1), obj.Cells(strRow2,strCols2)).MergeCells 
= True
  
 
End Sub 

 


End Class

    然后用这个类去创建一个具体的excel对象,并运用类自带的方法向这个对象中添加你想要添加的数据。代码如下:

 

ContractedBlock.gifExpandedBlockStart.gifCode
Sub Initialize
 
Dim s As New NotesSession
 
Dim db As NotesDatabase
 
Dim view As NotesView
 
Dim item As NotesItem
 
Dim doc As NotesDocument
 
Dim newdoc As NotesDocument
 
Dim array() As String
 
Dim i As Integer
 
Dim count As Integer
 
Dim client As String
 
Dim linker As String
 
Dim kehu As String
 
Dim a,b As Integer
 
Set doc=s.DocumentContext
 
Set db=s.CurrentDatabase
 
Set view=db.GetView("XXXX")
 
Set item=doc.GetFirstItem("XXXXX")
 
Set date1 = item.DateTimeValue

 
Dim report As Excelreport     '定义为Excelreport类型
 Set report = New Excelreport  '创建一个实例对象


 
'中间省略一些判断导入数据的代码


  
Call report.insertData(1,a+1,b,client)    '运用自定义excel类的方法添加数据
  Call report.insertData(1,a+1,b+1,kehu)
  
Call report.insertData(1,a+2,b,"联系次数")
  
Call report.insertData(1,a+2,b+1,Cstr(count))
  
Call report.insertData(1,a+2,b+2,"联系人")
  
Call report.insertData(1,a+2,b+3,linker)
 
 
'Call report.saveFile("C:\kkkk.xls")  '运用自定义excel类的方法保存excel文件
 'Call report.doQuit   '释放excel对象

 

   就是这两个很简单的方法,我个人认为比较有意思。希望有高手能给出更好的解决方法。大家一起探讨。
 
 
 
 
 
 
End Sub

转载于:https://www.cnblogs.com/haitunzhilian/archive/2009/05/29/To_excel.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值