在VB.net中可以在不显示Excel应用程序的情况下打印预览吗?我已经在很多地方寻找了这个,却没有找到答案。
现在我使用这种方法。
Dim XSh As Object = CreateObject("excel.application")
XSh.workbooks.open("D:\WP\formPrint.xlsx")
XSh.visible = True
For i As Integer = 0 To count
XSh.worksheets(1).range("A21").value = DataGridView1.Rows(i).Cells(0).Value
XSh.worksheets(1).range("A22").value = DataGridView1.Rows(i).Cells(1).Value
XSh.worksheets(1).range("A23").value = DataGridView1.Rows(i).Cells(2).Value
XSh.worksheets(1).range("A24").value = DataGridView1.Rows(i).Cells(3).Value
XSh.Sheets.PrintPreview()
XSh.Sheets.PrintOut()
Next i
XSh.workbooks(1).close(SaveChanges:=False)
XSh.application.Quit
我已经尝试改变
XSh.visible = False
什么也没显示。我只想显示“打印预览”而不显示excel应用程序文件。我能怎么做?
答案 0 :(得分:0)
“打印预览”是Excel应用程序的一部分,因此仅在设置XsH.visible = true
时才会显示。您也只能在显示“打印预览”之前将其设置为true,然后在打印时将其设置为false。
Dim XSh As Object = CreateObject("excel.application")
XSh.workbooks.open("D:\WP\formPrint.xlsx")
XSh.visible = False
For i As Integer = 0 To count
XSh.worksheets(1).range("A21").value = DataGridView1.Rows(i).Cells(0).Value
XSh.worksheets(1).range("A22").value = DataGridView1.Rows(i).Cells(1).Value
XSh.worksheets(1).range("A23").value = DataGridView1.Rows(i).Cells(2).Value
XSh.worksheets(1).range("A24").value = DataGridView1.Rows(i).Cells(3).Value
XSh.visible = True
XSh.Sheets.PrintPreview()
XSh.Sheets.PrintOut()
XSh.visible = False
Next i
XSh.workbooks(1).close(SaveChanges:=False)
XSh.application.Quit