用的是论坛中
sunsenfeng老师很好用的代码:
Dim Book As New XLS.Book(ProjectPath & "Attachments\订单.xls")
Dim file As String = ProjectPath & "Reports\订单.xls"
Book.Build() '生成细节区
Book.Save(file) '保存工作簿
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(file)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
With Ws.PageSetup
.PaperSize = MSExcel.XlPaperSize.xlPaperA4 '纸张大小
.CenterHorizontally = True '页面水平居中
.CenterVertically = True '页面垂直居中
.Zoom = False '以下设置将缩印在一页内
.FitToPagesWide = 1 '按照1页的宽度打印
.FitToPagesTall = 1 '按照1页的高度打印
End With
'App.Visible = True
Ws.PrintOut
wb.save
wb.close
App.Quit
--------------
出错的原因是:上一次打印时,由于网络打印机的延迟,而中途取消了打印,造成打开的excel文件未能关闭,而停留在进程中。
造成后面生成的excel报表未能更新到reports目录下的excel。
后来,进程强行关闭excel进程才恢复正常。
请教:有没有代码可以判断excel是否已经打开,如果已打开,则关闭之。
请老师指教,谢谢!
[此贴子已经被作者于2014-1-3 20:45:06编辑过]