"Kullanım Detayları" böyle olan bir dökümanda sonunda veri alış-verişi boyutu olan detayların GB cinsinden toplamını almak için bir LibreOffice Basic Makrosu kodladım . Topla() fonksiyonunda olduğu gibi toplanacak aralığı girebiliyor.
Aynı işlemi Python ya da JS makrolarla daha hızlı yapmak mümkün müdür ?
Kod: Tümünü seç
REM **** Kullanım Detaylarını Toplar ****
Function NetTopla(range) As STRING
Dim row, col As Integer
Dim result, cell, newcell As STRING
result = ""
For row = LBound(range, 1) To UBound(range, 1)
For col = LBound(range, 2) To UBound(range, 2)
cell = range(row, col)
newcell = ""
For NoktaVirgul = LEN(cell) to 1 STEP -1
This = MID(cell, NoktaVirgul, 1)
If This = "." Then
newcell = "," + newcell
Else
newcell = This + newcell
End If
Next
cell = newcell
Birim = RIGHT(cell, 2)
Select Case Birim
Case " B"
Bytes = CLng(LEFT(cell, LEN(cell) - 2))
KiloBytes = Bytes / 1024
Case "KB"
KiloBytes = CLng(LEFT(cell, LEN(cell) - 3))
Case "MB"
MegaBytes = CLng(LEFT(cell, LEN(cell) - 3))
KiloBytes = 1024 * MegaBytes
Case "GB"
GigaBytes = CLng(LEFT(cell, LEN(cell) - 3))
KiloBytes = 1024 * 1024 * GigaBytes
Case Else
End Select
result = CStr(CLng(KiloBytes) + CLng(result))
Next
Next
NetTopla = CStr(CLng(result) / (1024 * 1024) & " GB")
End Function