#vb.net #vb.net-2010
#vb.net #vb.net-2010
Вопрос:
В VB.net Могу ли я выполнить предварительный просмотр без показа приложения Excel? Я искал это во многих местах и не нашел ответа.
Теперь я использую этот метод.
Dim XSh As Object = CreateObject("excel.application")
XSh.workbooks.open("D:WPformPrint.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. Как я могу сделать?
Ответ №1:
Предварительный просмотр является частью приложения Excel, поэтому он будет отображаться только при установке XsH.visible = true
Вы также можете установить для него значение true непосредственно перед показом предварительного просмотра и вернуть ему значение false при печати.
Dim XSh As Object = CreateObject("excel.application")
XSh.workbooks.open("D:WPformPrint.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