-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Xlsx2Html code might be added as following:
Imports ClosedXML.Excel
Imports System.Net
Imports System.Text
Public Module ClosedXmlBasicHtml
Public Function XlsxToBasicHtml(path As String, Optional sheetIndex As Integer = 1) As String
Using wb As New XLWorkbook(path)
Dim ws = wb.Worksheet(sheetIndex)
Dim used = ws.RangeUsed()
If used Is Nothing Then Return "<!doctype html><html><body>(leer)</body></html>"
Dim sb As New StringBuilder()
sb.AppendLine("<!doctype html><html><meta charset=""utf-8""><body><table border=""1"" cellspacing=""0"" cellpadding=""4"">")
Dim firstDataRow = used.FirstRow().RowNumber()
For r = used.FirstRow().RowNumber() To used.LastRow().RowNumber()
sb.Append("<tr>")
For c = used.FirstColumn().ColumnNumber() To used.LastColumn().ColumnNumber()
Dim cell = ws.Cell(r, c)
Dim tag = If(r = firstDataRow, "th", "td")
' einfache Styles
Dim styles As New List(Of String)
If cell.Style.Font.Bold Then styles.Add("font-weight:bold")
If cell.Style.Font.Italic Then styles.Add("font-style:italic")
Select Case cell.Style.Alignment.Horizontal
Case XLAlignmentHorizontalValues.Center : styles.Add("text-align:center")
Case XLAlignmentHorizontalValues.Right : styles.Add("text-align:right")
Case XLAlignmentHorizontalValues.Left : styles.Add("text-align:left")
End Select
Dim styleAttr = If(styles.Count > 0, $" style=""{String.Join(";", styles)}""", "")
Dim text = WebUtility.HtmlEncode(cell.GetFormattedString())
sb.Append($"<{tag}{styleAttr}>{text}</{tag}>")
Next
sb.AppendLine("</tr>")
Next
sb.AppendLine("</table></body></html>")
Return sb.ToString()
End Using
End Function
End Module
Metadata
Metadata
Assignees
Labels
No labels