Lotus 技术点之导入
a) 从文本导入
Sub Initialize
On Error Goto UnknowError
Msgbox "开始导入"
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim docPerson As NotesDocument
Dim docTemp As NotesDocument
Dim vFile As Variant
Dim strMyname As String
Dim strDeptNO As String
Dim strDeptName As String
Dim strFile As String
Dim V1 As String
Dim NO,myname,sex,deptNo,deptName,duty,office,phone,mobile,fax,mail,IP,postalcode,address,remark As String
Set db=session.CurrentDatabase
Set doc=session.DocumentContext
vFile =Evaluate({@AttachmentNames},doc)
strFile =Cstr(vFile(0))
Msgbox strFile
Dim ebd As NotesEmbeddedObject
Set ebd=doc.GetAttachment(strFile)
Msgbox ebd Is Nothing
Call ebd.extractFile(strFile )
Open strFile For Input As 10
Dim i As Integer
i=1
If Not Eof(10) Then
Input #10,V1
End If
continue: Do While Not Eof(10)
Input #10,V1
If V1="" Then
Goto continue
Else
myname=Strtoken(V1," ",1)
sex=Strtoken(V1," ",2)
deptName=Strtoken(V1," ",3)
duty=Strtoken(V1," ",4)
office=Strtoken(V1," ",5)
phone=Strtoken(V1," ",6)
mobile=Strtoken(V1," ",7)
fax=Strtoken(V1," ",8)
mail=Strtoken(V1," ",9)
IP=Strtoken(V1," ",10)
postalcode=Strtoken(V1," ",11)
address=Strtoken(V1," ",12)
remark=Strtoken(V1," ",13)
End If
If myname="" Then
Print {<script>alert("第} & i & {条记录姓名为空,未导入");history.go(-1);</script>}
Goto continue
End If
If deptName="" Then
Print {<script>alert("第} & i & {条记录部门名称为空,未导入");history.go(-1);</script>}
Goto continue
End If
If phone="" Then
Print {<script>alert("第} & i & {条记录固定电话为空,未导入");history.go(-1);</script>}
Goto continue
End If
If mobile="" Then
Print {<script>alert("第} & i & {条记录手机号码为空,未导入");history.go(-1);</script>}
Goto continue
End If
Set docPerson=db.CreateDocument
docPerson.form="PersonInfo"
docPerson.myName=myname
docPerson.sex=sex
docPerson.dept=deptName
docPerson.duty=duty
docPerson.office=office
docPerson.phone=phone
docPerson.mobile=mobile
docPerson.fax=fax
docPerson.mail=mail
docPerson.IP=IP
docPerson.postalcode=postalcode
docPerson.address=address
Dim ritem As NotesRichTextItem
Set ritem=New NotesRichTextItem(docPerson,"remark")
ritem.text=remark
Call docPerson.Save(True,False)
Loop
Close #10
Kill strFile
Print {<script>alert("导入成功")</script>}
Exit Sub
UnknowError:
Msgbox "错误行:" & Erl & "错误信息:" & Error
Exit Sub
End Sub
b) Excel导入到notes中
Dim session As New notessession
Dim db As notesdatabase
Dim view As notesview
Dim doc As notesdocument
Dim tempdoc As notesdocument
Dim w As New notesuiworkspace
Dim authorsItem As NotesItem
Dim collection As NotesDocumentCollection
Dim v(0) As String
Dim r As Integer
Dim xlapp As Variant
Dim xlbook As Variant
Dim xlsheet As Variant
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
Eval = Evaluate(|@IsNotMember("[Administrator]";@UserRoles)|,doc) '用户执行操作时的判断权限
If Eval(0) = 1 Then
Msgbox "对不起,您无权使用此权限!请与管理员联系",0+16,"提示"
Exit Sub
End If
REM 导入数据时,不采用绝对的路径和文档名称
Dim files As Variant
files = w.OpenFileDialog(True, "打开Excel文档","", "D:")
Set db = session.currentdatabase
If Isempty(files(0)) Then
Exit Sub
Else
Set xlApp = CreateObject("Excel.Application") '创建Excel应用类
xlApp.Visible = False '设置Excel为不可见
Set xlBook = xlApp.Workbooks.Open(files(0)) '打开Excel工作薄
REM 设置打开Excel的第几个工作表
num =Cstr(Inputbox$("请问您想导入的工作表为第几个?"))
If num = "" Then
Exit Sub
End If
a = Cint(num)
Set XlSheet = xlBook.Worksheets(a) '打开Excel工作表
End If
r = 4
While Not Cstr(xlsheet.cells(r,1).value) = ""
Set doc = New NotesDocument(db)
doc.Form = "shenqing"
doc.date_1 = xlsheet.cells(r,1).value '申请日期
doc.Deft = xlsheet.cells(r,2).value '申请部门
doc.Text_5 = xlsheet.cells(r,3).value '申请工作区域
doc.Text_1 = xlsheet.cells(r,4).value '来访人员姓名
doc.CheckBox_2 = xlsheet.cells(r,5).value '来访人员有效证件名称
doc.Text_2 = xlsheet.cells(r,6).value '来访人员有效证件号码
doc.Text_3 = xlsheet.cells(r,7).value '来访人员公司名称
doc.sdate = xlsheet.cells(r,8).value '工作有效期限
doc.Text_9 = xlsheet.cells(r,9).value '发放证件编号
r = r+1
Print r
REM "编号的生成"
DateKey1 = Cstr(Format(doc.date_1(0),"yyyy")) '取原始数据中的年
DateKey2 = Cstr(Format(doc.date_1(0),"mm")) '取原始数据中的月
DateKey3 = Cstr(Cint(DateKey1))+"-"+Cstr(Cint(DateKey2))
DateKey = DateKey1+DateKey2
Dim Numview As NotesView
Dim Numdoc As NotesDocument
Dim vc As NotesViewEntryCollection
Dim entry As NotesViewEntry
Set Numview = db.GetView( "AllByNumber" )
Call Numview.refresh
Set vc = Numview.GetAllEntriesByKey(DateKey3,True)
doc.import = 1 '设置表单数据倒入时的参数
doc.date = "" '使数据导入后,打开表单时不显示表单创建的时间
If vc.count =0 Then
doc.Number = DateKey+"001"
Else
Set entry = vc.GetFirstEntry()
Set Numdoc = entry.Document
K = Cint(Right(Numdoc.Number(0),3))+1
If K <10 Then
Key1 = "00"+Cstr(K)
Elseif K<100 Then
Key1 = "0"+Cstr(K)
Else
Key1 = Cstr(K)
End If
doc.Number = DateKey+Key1
End If
doc.SaveOptions = "1"
Call doc.save(False,True)
If doc.Text_9(0) <> "" Then '流程参数设置
doc.lei = "已完成"
doc.actionnumber = "-1"
doc.statu = 2
doc.saveoptions = "1"
Call doc.save(False,True)
End If
Wend
Call xlbook.close(True)
Call xlapp.quit
Msgbox"导入完毕",0+32,"提示"
c) Excel导入notes之java版本
import lotus.domino.*;
import java.io.*;
import java.util.Vector;
import jxl.*;
import java.io.PrintWriter;
public class JavaAgent extends AgentBase {
public void NotesMain() {
System.out.println("11111111");
Session ss = getSession();
String srcFile = null;
String s=null;
Workbook rwb = null;
Document doc = null;
//'Cell ck0 = null;
InputStream inps = null;
Sheet rs=null;
int totalnum=0;
System.out.println("2222222222");
PrintWriter pw = getAgentOutput();
EmbeddedObject ebd = null;
File f=null;
try {
System.out.println("33333333333333");
AgentContext agt = ss.getAgentContext();
Document cdoc = agt.getDocumentContext();
Database cdb = agt.getCurrentDatabase();
DocumentCollection dc = null;
Agent ag=null;
String strdata = null;
String strContent = null;
Double dob=null;
StringBuffer tmpstr=new StringBuffer("1");
Vector vtr = ss.evaluate("@AttachmentNames",cdoc);
srcFile =new String(""+vtr.get(0).toString());
ebd = cdoc.getAttachment(srcFile);
System.out.println(srcFile);
ebd.extractFile(srcFile);
System.out.println("44444444asdfasdf");
//ebd.recycle();
//创建文件流,然后输出excel表格
inps = new FileInputStream(srcFile);
rwb = Workbook.getWorkbook(inps);
if (ebd==null)
{
rwb.close();
rwb = null;
return;
}
if (ebd.getType()!=EmbeddedObject.EMBED_ATTACHMENT)
{
rwb.close();
rwb = null;
return;
}
//读取第一张sheet
rs = rwb.getSheet(0);
Vector errRecord = new Vector();
for (int k=1;k<rs.getRows();k++)
{
System.out.println("44444444444444444444");
Cell ck0 = rs.getCell(0,k);
Cell ck1 = rs.getCell(1,k);
Cell ck2 = rs.getCell(2,k);
Cell ck3 = rs.getCell(3,k);
Cell ck4 = rs.getCell(4,k);
Cell ck5 = rs.getCell(5,k);
Cell ck6 = rs.getCell(6,k);
Cell ck7 = rs.getCell(7,k);
Cell ck8 = rs.getCell(8,k);
Cell ck9 = rs.getCell(9,k);
Cell ck10 = rs.getCell(10,k);
Cell ck11 = rs.getCell(11,k);
Cell ck12 = rs.getCell(12,k);
Cell ck13 = rs.getCell(13,k);
if(!ck0.getContents().equals(""))
{
System.out.println("55555555");
doc=cdb.createDocument();
doc.appendItemValue("Form", "PersonInfo");
if(!ck0.getContents().equals(""))
{
doc.appendItemValue("NO", ck0.getContents());
}
if(!ck1.getContents().equals(""))
{
doc.appendItemValue("myname",ck1.getContents());
}
if(!ck2.getContents().equals(""))
{
doc.appendItemValue("sex", ck2.getContents());
}
if(!ck3.getContents().equals(""))
{
doc.appendItemValue("dept", ck3.getContents());
}
if(!ck4.getContents().equals(""))
{
doc.appendItemValue("duty", ck4.getContents());
}
if(!ck5.getContents().equals(""))
{
doc.appendItemValue("office", ck5.getContents());
}
if(!ck6.getContents().equals(""))
{
doc.appendItemValue("phone", ck6.getContents());
}
if(!ck7.getContents().equals(""))
{
doc.appendItemValue("mobile", ck7.getContents());
}
if(!ck8.getContents().equals(""))
{
doc.appendItemValue("fax", ck8.getContents());
}
if(!ck9.getContents().equals(""))
{
doc.appendItemValue("mail", ck9.getContents());
}
if(!ck10.getContents().equals(""))
{
doc.appendItemValue("IP", ck10.getContents());
}
if(!ck11.getContents().equals(""))
{
doc.appendItemValue("postalcode", ck11.getContents());
}
if(!ck12.getContents().equals(""))
{
doc.appendItemValue("address", ck12.getContents());
}
if(!ck13.getContents().equals(""))
{
RichTextItem rtitem = doc.createRichTextItem("remark");
doc.appendItemValue("remark", ck13.getContents());
}
if (doc.save())
System.out.println("Document has been saved");
else
System.out.println("Unable to save document");
}
}
} catch(Exception e)
{
System.out.println("error>>>>>"+e);
}
finally {
rwb.close();
try
{
inps.close();
boolean success = (new File(srcFile)).delete();
}
catch(Exception ex)
{
System.out.println(ex);
}
}
}
}