corporallawson Ответов: 1

Сохраните HTML-файл на рабочем столе текущего пользователя


'create empty string
        Dim the_html_file As String = String.Empty

        Dim stylesheet As String = "  table.gridtable {margin:0 auto;width:95%;overflow:auto;font-family: helvetica,arial,sans-serif;"
        stylesheet &= "font-size:14px;color:#333333;border-width: 1px;border-color: #666666;border-collapse: collapse;text-align: center}"
        stylesheet &= "table.gridtable th {border-width: 1px;padding: 8px; border-style: solid;border-color: #666666;background-color: #F6B4A5;}"
        stylesheet &= "table.gridtable td {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;}"

        the_html_file = "<!DOCTYPE html><html><head><meta charset='UTF-8'><title>Cadet List</title><style>" & stylesheet & "</style></head><body>"

        the_html_file &= "<table class='gridtable'>"
        the_html_file &= "<thead><tr>"

        'get the column headers
        For Each column As DataGridViewColumn In grid.Columns
            the_html_file = the_html_file & "<th>" & column.HeaderText & "</th>"
        Next

        the_html_file = the_html_file & "</tr></thead><tbody>"

        'get the rows
        For Each row As DataGridViewRow In grid.Rows
            the_html_file &= "<tr>"
            'get the cells
            For Each cell As DataGridViewCell In row.Cells

                Dim cellcontent As String = cell.FormattedValue
                'replace < and > with html entities
                cellcontent = Replace(cellcontent, "<", "<")
                cellcontent = Replace(cellcontent, ">", ">")

                'using inline styles for column 1
                'If cell.ColumnIndex = 1 Then
                '    the_html_file = the_html_file & "<td style=color:white;background-color:red;font-weight:bold>" & cellcontent & "</td>"
                'Else
                '    the_html_file = the_html_file & "<td>" & cellcontent & "</td>"
                'End If

                'no inline styles
                the_html_file = the_html_file & "<td>" & cellcontent & "</td>"

            Next
            the_html_file &= "</tr>"
        Next

        the_html_file &= "</tbody></table></body></html>"

        'write the file
        My.Computer.FileSystem.WriteAllText("C:\Users\staff\Documents\cadetlist.html", the_html_file, False)

        'pass file to default browser
        Dim pinfo As New ProcessStartInfo()
        pinfo.WindowStyle = ProcessWindowStyle.Normal
        pinfo.FileName = "C:\Users\staff\Documents\cadetlist.html"
        Dim p As Process = Process.Start(pinfo)


Итак, вот мой код, все, что я хочу сделать, это сохранить файл на рабочем столе текущего пользователя или в документах. Я искал везде и перепробовал множество решений.

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

Я попытался найти ответ в интернете, но ничего не вышло.

1 Ответов

Рейтинг:
8

CHill60

Это CodeProject статьи Получение всех "специальных папок" через VB.NET[^] позволит вам получить фактическое имя папки, которую вы хотите сохранить, а затем использовать что-то вроде

My.Computer.FileSystem.WriteAllText(userDocFolder & "\cadetlist.html", the_html_file, False)


Maciej Los

5ed!

CHill60

Спасибо!

corporallawson

Вы сударь, не спаситель. Большое спасибо.

CHill60

С удовольствием!