Member 14588284 Ответов: 1

Печать файла шаблона excel


Привет, как я могу открыть printpireview или распечатать файл excel?


я попробовал этот код, но он не сработал


Эрор:
{00020819-0000-0000-C000-000000000046} Getting the COM class factory for the component to CLSID failed due to the following error: 80040154 Class not registered (HRESULT returned exception: 0x80040154 (REGDB_E_CLASSNOTREG)).


Что я уже пробовал:

Imports System.Drawing.Printing
Imports Microsoft.Office
Public Class F_KONSINYE
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim workbook As Excel.Workbook = New Excel.Workbook()
        workbook.LoadFromFile("C:\exceltemplate.xlsx")
        Dim dialog As PrintDialog = New PrintDialog()
        dialog.AllowPrintToFile = True
        dialog.AllowCurrentPage = True
        dialog.AllowSomePages = True
        dialog.AllowSelection = True
        dialog.UseEXDialog = True
        dialog.PrinterSettings.Duplex = Duplex.Simplex
        dialog.PrinterSettings.FromPage = 0
        dialog.PrinterSettings.ToPage = 8
        dialog.PrinterSettings.PrintRange = PrintRange.SomePages
        workbook.PrintDialog = dialog
        Dim pd As PrintDocument = workbook.PrintDocument
        If dialog.ShowDialog() = DialogResult.OK Then
            pd.Print()
        End If
    End Sub
End Class

Richard MacCutchan

В чем же проблема?

CHill60

"Это не сработало" - это худший из возможных способов объяснения проблемы. Что не сработало, что на самом деле произошло, какие сообщения об ошибках были показаны и т. д.
А хранить ваши файлы в корневой папке не очень хорошая идея - переместите их в подпапку

Member 14588284

я улучшил вопрос
{00020819-0000-0000-C000-000000000046} получение фабрики COM-класса для компонента в CLSID не удалось из-за следующей ошибки: 80040154 класс не зарегистрирован (HRESULT вернул исключение: 0x80040154 (REGDB_E_CLASSNOTREG)).

Dave Kreskowiak

Это означает, что библиотека COM, которую вы пытаетесь использовать, не зарегистрирована на компьютере.

У вас есть офис, установленный на этой машине?

1 Ответов

Рейтинг:
2

Member 14588284

Dim XSh As Object = CreateObject("excel.application")
       XSh.workbooks.open("C:\exceltemplate.xlsx")
       XSh.visible = False
       With KONS_TABLO
           For i As Integer = 0 To .RowCount

               XSh.worksheets(1).range("A21").value = .Rows(i).Cells(0).Value
               XSh.worksheets(1).range("A22").value = .Rows(i).Cells(1).Value
               XSh.worksheets(1).range("A23").value = .Rows(i).Cells(2).Value
               XSh.worksheets(1).range("A24").value = .Rows(i).Cells(3).Value

               XSh.visible = True
               XSh.Sheets.PrintPreview()
               ' XSh.Sheets.PrintOut()
               XSh.visible = False

           Next i
       End With
       XSh.workbooks(1).close(SaveChanges:=False)
       XSh.application.Quit()



я нашел этот код и он сработал

Спасибо