直接填数据 我测试过了 代码执行效率有点慢 打开文件 () -> 填数据 ->保存文件 > 打开文件(二次打开才运行宏)
总感觉 打开 很慢 起码2秒 才能打开 预览!
代码如下
FileSys.CopyFile(ProjectPath & "Reports\" & Tables("主界面_table1").current("样品名称") & ".xls",ProjectPath & "temp\" & Tables("主界面_table1").current("自动编号") & ".xls",True)
Dim file As String = ProjectPath & "temp\" & Tables("主界面_table1").current("自动编号") & ".xls"
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(file)'打开模板文件
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("数据")
ws.Select
Ws.Range("F4").value= Tables("主界面_table1").Current.DataRow.GetParentRow("工程")("工程名称")
Ws.Range("F5").value = Tables("主界面_table1").Current("委托单位")
Ws.Range("F6").value = Tables("主界面_table2").Current("生产厂家")
Ws.Range("J4").value = Tables("主界面_table1").Current.DataRow.GetParentRow("工程")("送样人员") & " " & Tables("主界面_table1").Current.DataRow.GetParentRow("工程")("上岗证号")
Dim jz As Integer = 0
If Tables("主界面_table2").Compute("count(见证)")> 0 Then
Ws.Range("J7").value = "是"
Ws.Range("J8").value = Tables("主界面_table1").Current.DataRow.GetParentRow("工程")("监理人员")
Ws.Range("J9").value = Tables("主界面_table2").Compute("count(见证)")
End If
Ws.Range("L4").value = Tables("主界面_table1").Current("自动编号")
Ws.Range("L5").value = Tables("主界面_table1").Current("收样组数")
Ws.Range("L6").value = Tables("主界面_table1").Current("录入日期")
Ws.Range("L7").value = Tables("主界面_table1").Current("报告日期")
Dim i As Integer
For i=0 To Tables("主界面_table1").Current("收样组数")-1
Ws.Range("D" & 12+i).value =Tables("主界面_table2").Rows(i)("样品状态")
Ws.Range("E" & 12+i).value =Tables("主界面_table2").Rows(i)("取样部位")
Next
Wb.Save
App.Visible = True
Wb.WorkSheets("报告").PrintPreview
App.Visible = False
App.Quit
但是PrintPreview 方式打开的话 依然不能 运行宏,只有
Dim Proc As New Process '定义一个新的Process
Proc.File = file '指定要打开的文件
Proc.Start()
才能运行宏,但是不晓得怎么预览
估计要用这个方法才行
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=5152&authorid=120
foxls.mExcel.openxls("D:/abc.xls")
源代码
Imports Microsoft.Office.Interop
Public Module mExcel
Sub openxls(ByVal FilePath As String)
If IO.File.Exists(FilePath) Then
Dim app As New Excel.Application
Dim book As Excel.Workbook = app.Workbooks.Open(FilePath)
Dim sheet As Excel.Worksheet = book.Sheets.Item(1)
app.Visible = True
sheet.PrintPreview()
book.Close()
app.Quit()
Else
MsgBox("文件不存在!", MsgBoxStyle.OkOnly)
End If
End Sub
End Module
[此贴子已经被作者于2013-10-1 17:31:10编辑过]