add markdown_from_table, markdown_whole_sheet, json_multirange
This commit is contained in:
parent
949c561a13
commit
b0c229065a
@ -2069,4 +2069,95 @@ Public Function MISCe_MaxLng(ByRef base As Long, ByRef compare As Long) As Long
|
||||
Exit Function
|
||||
End If
|
||||
|
||||
End Function
|
||||
End Function
|
||||
|
||||
Public Function markdown_from_table(ByRef tbl() As Variant) As String
|
||||
|
||||
|
||||
|
||||
Dim msl() As Integer
|
||||
Dim md As String
|
||||
Dim r As Integer
|
||||
Dim c As Integer
|
||||
|
||||
ReDim msl(UBound(tbl, 2))
|
||||
|
||||
'---determine max string length per column----
|
||||
For c = 1 To UBound(tbl, 2)
|
||||
For r = 1 To UBound(tbl, 1)
|
||||
If Len(tbl(r, c)) > msl(c) Then msl(c) = Len(tbl(r, c))
|
||||
Next r
|
||||
Next c
|
||||
|
||||
'---build markdown table-----------
|
||||
For r = 1 To UBound(tbl, 1)
|
||||
If r = 2 Then
|
||||
md = md & "|"
|
||||
For c = 1 To UBound(tbl, 2)
|
||||
md = md & "---" & String(msl(c) - 3, "-") & "|"
|
||||
Next c
|
||||
md = md & vbCrLf
|
||||
End If
|
||||
md = md & "|"
|
||||
For c = 1 To UBound(tbl, 2)
|
||||
md = md & tbl(r, c) & String(msl(c) - Len(tbl(r, c)), " ") & "|"
|
||||
Next c
|
||||
md = md & vbCrLf
|
||||
Next r
|
||||
|
||||
markdown_from_table = md
|
||||
|
||||
End Function
|
||||
|
||||
Public Function json_multirange(ByRef r As range) As String
|
||||
|
||||
Dim ar As range
|
||||
Dim r1() As Variant
|
||||
Dim r2() As Variant
|
||||
Dim rslt As String
|
||||
Dim d() As String
|
||||
Dim i As Integer
|
||||
Dim dest As String
|
||||
|
||||
i = 1
|
||||
For Each ar In r.Areas
|
||||
|
||||
r1 = ar
|
||||
If i > 1 Then
|
||||
rslt = rslt & "," & Me.json_from_table(r1, CStr(r1(1, 1)), True)
|
||||
Else
|
||||
rslt = Me.json_from_table(r1, CStr(r1(1, 1)), True)
|
||||
End If
|
||||
i = i + 1
|
||||
Next ar
|
||||
rslt = "{" & rslt & "}"
|
||||
|
||||
json_multirange = rslt
|
||||
|
||||
End Function
|
||||
|
||||
Function markdown_whole_sheet(ByRef sh As Worksheet) As String
|
||||
|
||||
Dim mr As Long
|
||||
Dim mc As Long
|
||||
Dim ir As Long
|
||||
Dim ic As Long
|
||||
Dim x As New TheBigOne
|
||||
Dim tbl() As Variant
|
||||
|
||||
tbl = sh.range("A1:CZ1000")
|
||||
|
||||
For ic = 1 To UBound(tbl, 2)
|
||||
For ir = 1 To UBound(tbl, 1)
|
||||
If tbl(ir, ic) <> "" Then
|
||||
mr = x.MISCe_MaxLng(ir, mr)
|
||||
mc = x.MISCe_MaxLng(ic, mc)
|
||||
End If
|
||||
Next ir
|
||||
Next ic
|
||||
|
||||
tbl = sh.range(sh.Cells(1, 1).Address & ":" & sh.Cells(mr, mc).Address)
|
||||
|
||||
markdown_whole_sheet = Me.markdown_from_table(tbl)
|
||||
|
||||
End Function
|
||||
|
Loading…
Reference in New Issue
Block a user