URI:
       txlstojson.py - scripts - random scripts
  HTML git clone https://git.parazyd.org/scripts
   DIR Log
   DIR Files
   DIR Refs
       ---
       txlstojson.py (1453B)
       ---
            1 #!/usr/bin/env python3
            2 import xlrd
            3 import json
            4 import os.path
            5 import sys
            6 
            7 def getColNames(sheet):
            8         rowSize = sheet.row_len(0)
            9         colValues = sheet.row_values(0, 0, rowSize )
           10         columnNames = []
           11 
           12         for value in colValues:
           13                 columnNames.append(value)
           14 
           15         return columnNames
           16 
           17 def getRowData(row, columnNames):
           18         rowData = {}
           19         counter = 0
           20 
           21         for cell in row:
           22                 rowData[columnNames[counter]] = cell.value
           23                 counter +=1
           24 
           25         return rowData
           26 
           27 def getSheetData(sheet, columnNames):
           28         nRows = sheet.nrows
           29         sheetData = []
           30         counter = 1
           31 
           32         for idx in range(1, nRows):
           33                 row = sheet.row(idx)
           34                 rowData = getRowData(row, columnNames)
           35                 sheetData.append(rowData)
           36 
           37         return sheetData
           38 
           39 def getWorkBookData(workbook):
           40         nsheets = workbook.nsheets
           41         counter = 0
           42         workbookdata = {}
           43 
           44         for idx in range(0, nsheets):
           45                 worksheet = workbook.sheet_by_index(idx)
           46                 columnNames = getColNames(worksheet)
           47                 sheetdata = getSheetData(worksheet, columnNames)
           48                 workbookdata[worksheet.name] = sheetdata
           49 
           50         return workbookdata
           51 
           52 def main():
           53         filename = sys.argv[1]
           54 
           55         if os.path.isfile(filename):
           56                 workbook = xlrd.open_workbook(filename, encoding_override="cp1252")
           57                 workbookdata = getWorkBookData(workbook)
           58                 output = \
           59                 open((filename.replace("xlsx", "json")).replace("xls", "json"), "w")
           60                 output.write(json.dumps(workbookdata, sort_keys=True, indent=4,  separators=(',', ": ")))
           61                 output.close()
           62                 print("%s was created" % output.name)
           63         else:
           64                 print("Sorry, that was not a valid filename")
           65 
           66 
           67 
           68 main()