- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从 .xls 格式而不是 .csv 格式的列值导出 CSVview。现在它以 .csv 格式导出。我尝试将文件名替换为 .xls,但该文件无法同时打开 MS Excel 和 Open Office。能否请你帮忙?
这是代码:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim CSVview As NotesView
Dim lookupview As NotesView
Dim exportmaildoc As NotesDocument
Dim pathdoc As NotesDocument
Dim object As NotesEmbeddedObject
Dim exporttoid As Variant
Dim datafileName As String
Dim filepath As String
Dim filenames As Variant
Set db=session.CurrentDatabase
Set CSVview=db.GetView("Top10DCV")
datafileEnd$ = "ESI_Top_10_Density_Offenders.csv"
Set lookupview = db.GetView("lookupkeyword")
Set pathdoc = lookupview.GetDocumentByKey("UploadFilePath")
If Not pathdoc Is Nothing Then
filepath = pathdoc.Keyword(0)
datafileName = filepath & datafileEnd$
Else
MsgBox "File path not found."
Exit Sub
End If
datafileNum = FreeFile()
Open datafileName For Output As datafileNum
Call ViewCSVPrint ( CSVview, datafileName )
Set exportmaildoc = lookupview.GetDocumentByKey("Density")
If Not exportmaildoc Is Nothing Then
exporttoid = exportmaildoc.Keyword
End If
Dim maildoc As NotesDocument
Set maildoc = db.CreateDocument
Dim rtitem As NotesRichTextItem
maildoc.subject = "Report export file"
Set rtitem = New NotesRichTextItem(maildoc, "Body" )
Call rtitem.AppendText("Please find the report below:" )
Call rtitem.AddNewLine( 2 )
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", datafileName)
Dim allofthem() As String
ReDim Preserve allofthem(UBound(exporttoid)) As String
For q = 0 To UBound(exporttoid)
allentries = allentries + 1
allofthem(q) = exporttoid(q)
Next
maildoc.sendto = allofthem
If maildoc.sendto(0) <> "" Then
Call maildoc.send(False)
End If
Exit Sub
End Sub
----------------------------------------------------------------------------
Sub ViewCSVPrint (CSVview As NotesView, FileName As String )
Dim x As Integer
Dim vc As NotesViewEntryCollection
'CSV Static Headers
Print #datafileNum%,(Format$("DimWt/ActWt%","")&";"&Format$("DimWt-ActWt","")&";"&Format$("MT/PN","")& ";"&Format$("Model","")&";"&Format$("PkgVol/ProdVol","")&";"&Format$("PkgProdL(mm)","")& ";"&Format$("PkgProdW(mm)","")& ";"&Format$("PkgProdD(mm)","")&";"&Format$("PkgProdVol(CubicMeters)","")&";"&Format$("PkgProdWt(kg)","")& ";"&Format$("PkgProdDimWt","")& ";"&Format$("ProdL(OD)mm","")&";"&Format$("ProdW(OD)mm","")&";"&Format$("ProdD(OD)mm","")& ";"&Format$("ProdVol(CubicMeters)","")& ";"&Format$("ProdWt(kg)","")&";"&Format$("ProdDensity","")&";"&Format$("PkgProdDensity","")&";"&Format$("Pkg/ProdVolRatio",""))
Const NotesMacro$ = {@DBColumn("":"";@dbname;"Top10DCV";2)}
retval = Evaluate(NotesMacro$)
For t = 0 To UBound(retval)
Set vc = CSVview.GetAllEntriesByKey(retval(t), True)
Set v2entry = vc.GetFirstEntry
doccount1 = 0
Do While doccount1 < 10 And Not v2entry Is Nothing
ReDim Preserve tmpArray3(tmpcount3)
ReDim Preserve tmpArray4(tmpcount4)
ReDim Preserve tmpArray5(tmpcount5)
ReDim Preserve tmpArray6(tmpcount6)
ReDim Preserve tmpArray7(tmpcount7)
ReDim Preserve tmpArray8(tmpcount8)
ReDim Preserve tmpArray9(tmpcount9)
ReDim Preserve tmpArray10(tmpcount10)
ReDim Preserve tmpArray11(tmpcount11)
ReDim Preserve tmpArray12(tmpcount12)
ReDim Preserve tmpArray13(tmpcount13)
ReDim Preserve tmpArray14(tmpcount14)
ReDim Preserve tmpArray15(tmpcount15)
ReDim Preserve tmpArray16(tmpcount16)
ReDim Preserve tmpArray17(tmpcount17)
ReDim Preserve tmpArray18(tmpcount18)
ReDim Preserve tmpArray19(tmpcount19)
ReDim Preserve tmpArray20(tmpcount20)
ReDim Preserve tmpArray21(tmpcount21)
tmpArray3(tmpcount3) = v2entry.ColumnValues(3)
tmpArray4(tmpcount4) = v2entry.ColumnValues(4)
tmpArray5(tmpcount5) = v2entry.ColumnValues(5)
tmpArray6(tmpcount6) = v2entry.ColumnValues(6)
tmpArray7(tmpcount7) = v2entry.ColumnValues(7)
tmpArray8(tmpcount8) = v2entry.ColumnValues(8)
tmpArray9(tmpcount9) = v2entry.ColumnValues(9)
tmpArray10(tmpcount10) = v2entry.ColumnValues(10)
tmpArray11(tmpcount11) = v2entry.ColumnValues(11)
tmpArray12(tmpcount12) = v2entry.ColumnValues(12)
tmpArray13(tmpcount13)= v2entry.ColumnValues(13)
tmpArray14(tmpcount14)= v2entry.ColumnValues(14)
tmpArray15(tmpcount15)= v2entry.ColumnValues(15)
tmpArray16(tmpcount16)= v2entry.ColumnValues(16)
tmpArray17(tmpcount17)= v2entry.ColumnValues(17)
tmpArray18(tmpcount18)= v2entry.ColumnValues(18)
tmpArray19(tmpcount19)= v2entry.ColumnValues(19)
tmpArray20(tmpcount20)= v2entry.ColumnValues(20)
tmpArray21(tmpcount21)= v2entry.ColumnValues(21)
doccount1 = doccount1 + 1
Print #datafileNum%,(Format$(tmpArray3(tmpcount3),"0.00%")&";"&Format$(tmpArray4(tmpcount4),"0.00") & ";" & tmpArray5(tmpcount5) & ";" & tmpArray6(tmpcount6) & ";" & Format$(tmpArray7(tmpcount7),"0.00")&";"&Format$(tmpArray8(tmpcount8),"0.0")&";"&Format$(tmpArray9(tmpcount9),"0.00")&";"&Format$(tmpArray10(tmpcount10),"0.0")&";"&Format$(tmpArray11(tmpcount11),"0.000")&";"&Format$(tmpArray12(tmpcount12),"0.00")&";"&Format$(tmpArray13(tmpcount13),"0.00")&";"&Format$(tmpArray14(tmpcount14),"0.0")&";"&Format$(tmpArray15(tmpcount15),"0.0")&";"&Format$(tmpArray16(tmpcount16),"0.0")&";"&Format$(tmpArray17(tmpcount17),"0.00")&";"&Format$(tmpArray18(tmpcount18),"0.0")&";"&Format$(tmpArray19(tmpcount19),"0.00")&";"&Format$(tmpArray20(tmpcount20),"0.00")&";"&Format$(tmpArray21(tmpcount21),"0.00"))
Set v2entry = vc.GetNextEntry(v2entry)
tmpcount3=tmpcount3 + 1
tmpcount4=tmpcount4 + 1
tmpcount5=tmpcount5 + 1
tmpcount6=tmpcount6 + 1
tmpcount7=tmpcount7 + 1
tmpcount8=tmpcount8 + 1
tmpcount9=tmpcount9 + 1
tmpcount10=tmpcount10 + 1
tmpcount11=tmpcount11 + 1
tmpcount12=tmpcount12 + 1
tmpcount13=tmpcount13 + 1
tmpcount14=tmpcount14 + 1
tmpcount15=tmpcount15 + 1
tmpcount16=tmpcount16 + 1
tmpcount17=tmpcount17 + 1
tmpcount18=tmpcount18 + 1
tmpcount19=tmpcount19 + 1
tmpcount20=tmpcount20 + 1
tmpcount21=tmpcount21 + 1
Loop
Next
Close datafileNum%
Exit Sub
最佳答案
创建一个 HTML 表,但将文件扩展名设置为 .xls。
我在这里写了一篇博客:http://blog.texasswede.com/export-from-notes-to-excel-3-different-ways/
在这里:http://blog.texasswede.com/generate-excel-spreadsheets-using-lotusscript/
最后,您可以使用我在博客上发布的类(class):
http://blog.texasswede.com/export-notes-view-to-excel-with-multi-value-fields/
以下是将 View 导出为 HTML 以导入 Excel 的代码:
Dim csv As CSVData
Dim outfile As String
Set csv = New CSVData("DominoServer/YourDomain", "names.nsf", "People\By Last Name")
'*** Create HTML table and save as .xls to open in Excel
outfile = "c:\ExcelExportTest.xls"
Open outfile For Output As #1
Print #1, "<table>"
ForAll row In csv.HTMLArray()
Print #1, row
End ForAll
Print #1, "</table>"
Close #1
%REM
Agent View Export
Created Mar 27, 2013 by Karl-Henry Martinsson
Description: Code to export a specified view as CSV.
Copyright (c) 2013 by Karl-Henry Martinsson
This code is distributed under the terms of
the Apache Licence Version 2.
See http://www.apache.org/licenses/LICENSE-2.0.txt
%END REM
Option Public
Option Declare
Class RowData
Public column List As String
Public Sub New()
End Sub
Public Sub SetColumnHeader(view As NotesView)
Dim viewcolumn As NotesViewColumn
Dim cnt As Integer
ForAll vc In view.Columns
Set viewcolumn = vc
column(CStr(cnt)) = viewcolumn.Title
cnt = cnt + 1
End Forall
End Sub
Public Sub SetColumnValues(values As Variant)
Dim cnt As Integer
Dim tmp As String
ForAll v In values
If IsArray(v) Then
ForAll c In v
tmp = tmp + c + Chr$(13)
End ForAll
column(CStr(cnt)) = Left$(tmp,Len(tmp)-1)
Else
column(CStr(cnt)) = v
End If
cnt = cnt + 1
End ForAll
End Sub
End Class
Class CSVData
Private row List As RowData
Private rowcnt As Long
%REM
Function New
Description: Open the view and read view data
into a list of RowData objects.
%END REM
Public Sub New(server As String, database As String, viewname As String)
Dim db As NotesDatabase
Dim view As NotesView
Dim col As NotesViewEntryCollection
Dim entry As NotesViewEntry
Dim colcnt As Integer
Set db = New NotesDatabase(server, database)
If db Is Nothing Then
MsgBox "Could not open " + database + " on " + server,16,"Error"
Exit Sub
End If
Set view = db.GetView(viewname)
If view Is Nothing Then
MsgBox "Could not access view " + viewname + ".",16,"Error"
Exit Sub
End If
Set col = view.AllEntries()
rowcnt = 0
Set entry = col.GetFirstEntry()
Set row("Header") = New RowData()
Call row("Header").SetColumnHeader(view)
Do Until entry Is Nothing
rowcnt = rowcnt + 1
Set row(CStr(rowcnt)) = New RowData()
Call row(CStr(rowcnt)).SetColumnValues(entry.ColumnValues)
Set entry = col.GetNextEntry(entry)
Loop
End Sub
%REM
Function CSVArray
Description: Returns a string array of CSV data by row
%END REM
Public Function CSVArray() As Variant
Dim rowarray() As String
Dim textrow As String
Dim cnt As Long
ReDim rowarray(rowcnt) As String
ForAll r In row
textrow = ""
ForAll h In r.column
textrow = textrow + |"| + Replace(h,Chr$(13),"\n") + |",|
End ForAll
rowarray(cnt) = Left$(textrow,Len(textrow)-1)
cnt = cnt + 1
End ForAll
CSVArray = rowarray
End Function
%REM
Function HTMLArray
Description: Returns a string array of HTML data by row
%END REM
Public Function HTMLArray() As Variant
Dim rowarray() As String
Dim textrow As String
Dim cnt As Long
ReDim rowarray(rowcnt) As String
ForAll r In row
textrow = ""
ForAll h In r.column
textrow = textrow + |<td>| + Replace(h,Chr$(13),"<br>") + |</td>|
End ForAll
rowarray(cnt) = "<tr>" + textrow + "</tr>"
cnt = cnt + 1
End ForAll
HTMLArray = rowarray
End Function
End Class
关于excel - Lotus Notes : How to export the view (column values) in . xls 而不是 .csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28299714/
我使用一个简单的 Action 代理创建了一个自动回复代理,它当前响应所有发件人,我只想将回复发送给一组特定的发件人。 这是我想要实现的一个例子: 我有一个 Lotus Notes 邮件数据库,电子邮
我有一个要求,其中有一个带有附件的文档,当我点击一个按钮时,它会打开一个新表单。此表单必须在富文本字段中包含该附件。我在打开的新表单的 PostOpen 事件中编写了以下代码 Set item
我在 Windows 7 上使用 Lotus Notes 8.5.2。我想创建一个自定义 View 来显示除已发送邮件之外的所有电子邮件。换句话说,它包含:收件箱和所有文件夹。 目前我的 ALL DO
我正在设置一个 Lotus Notes 帐户来接受来自客户端的电子邮件,并自动将每封电子邮件保存为纯文本文件以供其他应用程序处理。 因此,我正在尝试在 Lotus 中创建我的第一个代理,以自动将电子邮
有没有不用付费软件就可以解锁 Lotus Notes 数据库设计的方法? 锁定数据库的人离开了公司,我们没有此应用程序的任何模板。因此,只有通过解锁此数据库才能开始进一步开发此数据库。 最佳答案 您是
我正在用 Lotus Notes 6.0.3(即将升级到 8.5)设计一个工作流数据库,我的操作系统是 Windows XP。 我最近尝试将选项卡式表格转换为可编程表格。这样我就可以控制在打开时向用户
我尝试在 Lotus Notes 中构建高级表单。某些字段应根据其他字段的状态隐藏。 我可以通过定义一个公式来隐藏一个字段。但问题是我必须首先保存文档,关闭它然后重新打开它才能看到字段被隐藏。 当我更
我在服务器 1 中有一个数据库,它引用服务器 2 中的多个数据库用于记录验证目的。当计划的代理运行时,它遇到“对象变量未设置”错误。但是,当我尝试手动运行代理(右键单击代理名称,单击运行)时,它运行顺
在 Lotus Notes 数据库上启用源代码控制很容易 - 这将维护数据库中所有设计元素的磁盘副本。但是,是否也可以包含文档?在我们的设计中,我们在数据库中的 Lotus Notes 文档中存储了大
我想以编程方式解密 Lotus Notes NSF 文件。假设对于每个 NSF,我都有访问 NSF 所需的 ID 文件和密码。 我使用的是 Lotus Notes 8.5.2,Windows 7 SP
我正在使用 Lotus Notes 数据库,我们整个公司都将其客户数据添加到其中。搜索功能应该为我提供客户,当我单击它时,我会获得日常工作所需的更详细信息。 但是,我必须搜索这个数据库,它在显示数据方
我有一个客户使用 Lotus Domino 作为他们的 Web 应用程序/服务器平台。客户有两个“Web 开发人员”,他们更熟悉 Lotus Domino,而不是更主流的工具和技术,并且不热衷于进行转
我的要求是收集 Lotus Notes 文档,对于给定的一组搜索词,这些文档包含: 所有这些条款, 这些条款中的任何一个 或没有这些条款。 我正在使用 Database.FTsearch(...)方法
我试图在我们的网站上设置 mailto。 我写了如下代码 mail us 当有人按下“向我们发送邮件”链接时,在 Lotus Notes 中,文本会直接出现在电子邮件地址所在的位置。 mail.us.
莲花 8.5.3 我需要做的是启动外部流程以响应符合特定条件的传入电子邮件。 规则无法做到这一点。很公平,看起来代理可以。 好的,所以设置一个带有代理的 LotusScript 来做我需要的,用运行测
在我的 Lotus Notes 代理中,我使用新表单临时创建了一些文档(表单中有一个富文本字段),在代码的末尾,我有“Call TempDoc.Remove(True)”,当程序执行这行代码,出现错误
我正在编写向用户发送邮件的代码。邮件文本包含日期。虽然日期计算正确,但日期仍以英语显示,即使所有用户都使用德语 Windows 操作系统并且在 Notes 首选项中将德语设置为他们的语言。这是我的代码
我们正在服务台团队中与 Lotus Notes 合作,了解我们回复消息需要多长时间会很有用。有什么办法可以实现这一点吗? 最佳答案 建议方法的问题在于,它们仅测量某人开始撰写响应之前的时间,而不是发送
我们正在服务台团队中与 Lotus Notes 合作,了解我们回复消息需要多长时间会很有用。有什么办法可以实现这一点吗? 最佳答案 建议方法的问题在于,它们仅测量某人开始撰写响应之前的时间,而不是发送
编辑操作按钮属性时,它允许 @if 语句翻转/翻转两个选择(锁定/解锁)。即 @If(enlock=1;"Unlock";"Lock") 用于操作按钮的“标签”。在“操作”属性的底部,图标可以是“无”
我是一名优秀的程序员,十分优秀!