Excel в HTML с использованием VB.Net - PullRequest
0 голосов
/ 19 марта 2020

В форме Windows мне нужно экспортировать данные (столбцы от A до C) из Excel в HTML.

Я пытаюсь, как показано ниже, но получаю «Publi c member» NamedaRanges в типе «Рабочий лист не найден» в namedRanges. После этого невозможно проверить, удастся ли сохранить HTML. Пожалуйста, помогите решить эту проблему.

Private Sub Button_click() 
    xlSheet=xlWB.Worksheets("Sheet3")  
    xlSheet.NamedRanges.SetPrintArea
          (xlSheet.Cells.GetSubrange
                          ("A1",C1")) 
   xlSheet.SaveAs(FileName:="C:\Users\
      Sample.html",FileFormat:=xlHtml)
End Sub

1 Ответ

1 голос
/ 19 марта 2020

Для несмежных диапазонов вам, возможно, придется скопировать во временный лист как непрерывный диапазон и экспортировать

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click

        Const folder = "C:\tmp\"
        Const xlFile = "test1.xlsx"
        Const htmlfile = "export.html"

        Dim xls As New Excel.Application
        Dim wb As Workbook
        Dim ws As Worksheet, wsHtml As Worksheet

        wb = xls.Workbooks.Open(folder & xlFile, False, True) ' no link update , radonly
        ws = wb.Worksheets("Sheet3")

        ' create temp sheet, copy range to it, export and then delete it
        wsHtml = wb.Sheets.Add()
        ws.Range("A:A,C:C").Copy(wsHtml.Range("A1"))
        wsHtml.PageSetup.PrintArea = wsHtml.Columns("A:B").Address
        wsHtml.SaveAs(Filename:=folder & htmlfile, FileFormat:=44) ' html

        xls.DisplayAlerts = False
        wsHtml.Delete()
        xls.DisplayAlerts = True

        wb.Close(False)
        xls.Quit()
        MsgBox("Exported to " & folder & htmlfile)

    End Sub
...