Предварительный просмотр без открытия приложения Excel [VB.net]

#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