python从excel电子表格中提取数据到json表单

时间:2017-10-26 00:49:04

标签: javascript python json excel

我想让Python从excel电子表格中提取一些值并发送到网页以通过javascript进行处理。不知道如何去做这个最好的方法。 我想创建一个dict对象并以json形式将其返回给js。

基本上从excel电子表格中提取的值如下

Design Lump Sum:
design_cells[0].value, design_cells[1].value
design_cells[0].value, design_cells[1].value
design_cells[0].value, design_cells[1].value
design_cells[0].value, design_cells[1].value
design_cells[0].value, design_cells[1].value
...
..
.
Capex Lump Sum:
Capex_cells[0].value, Capex_cells[1].value
Capex_cells[0].value, Capex_cells[1].value
Capex_cells[0].value, Capex_cells[1].value
Capex_cells[0].value, Capex_cells[1].value
Capex_cells[0].value, Capex_cells[1].value
...
..
.

让python从上面创建一个dict或json对象的任何帮助。

请参阅下面的提取代码,该代码迭代行值

import xlrd
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import json
    book = xlrd.open_workbook("Glebe TE - Master Invoicing.xlsm")
    first_sheet = book.sheet_by_index(1)

    for i in range(12,19):
        design_cells = first_sheet.row_slice(rowx=i, start_colx=2, end_colx=4)

        if str(design_cells[0].value) and str(design_cells[1].value):
            print str(design_cells[0].value)
            print str(design_cells[1].value)


    for i in range(22,155):
        capex_cells = first_sheet.row_slice(rowx=i, start_colx=2, end_colx=4)
        if str(capex_cells[0].value) and str(capex_cells[1].value):
            print str(capex_cells[0].value)
            print str(capex_cells[1].value)


    for i in range(157,175):
        Opex_cells = first_sheet.row_slice(rowx=i, start_colx=2, end_colx=4)
        if str(Opex_cells[0].value) and str(Opex_cells[1].value):
            j = j + 1
            print str(Opex_cells[0].value)
            print str(Opex_cells[1].value)

1 个答案:

答案 0 :(得分:0)

好吧,如果你是print,那么为什么不将它们打包成一个数组,其中数组元素是一行,并且你有一个带有单个或只是数组数组的dict: / p>

alist = []    
tlist = []

for i in range(12,19):
    design_cells = first_sheet.row_slice(rowx=i, start_colx=2, end_colx=4)
    if str(design_cells[0].value) and str(design_cells[1].value):
        #print str(design_cells[0].value)
        #print str(design_cells[1].value)
        alist.append([str(design_cells[0].value), str(design_cells[1].value)]

alist将是:[ [0value, 1value], [0value, 1value],... ]

编辑:OP显然需要一个dicts列表(其值也是列表):

tlist.append({'Design Sum': alist})
alist = [] # clear alist for next group

然后您需要的是:json_dumps(tlist)将该对象转换为json字符串......