Python 读取Excel某一列|转存json

import xlrd

worksheet = xlrd.open_workbook(u'测试.xlsx')
sheet_names= worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
    sheet = worksheet.sheet_by_name(sheet_name)
    rows = sheet.nrows # 获取行数
    cols = sheet.ncols # 获取列数,尽管没用到
    all_content = []
    for i in range(rows) :
        cell = sheet.cell_value(i, 2) # 取第二列数据
        try:
            cell = int(cell) # 转换为整数
            all_content.append(cell)
        except ValueError as e:
            pass
    # cols = sheet.col_values(2) # 获取第二列内容 但是整数会处理成float
    print(all_content)

升级版本,将表格以json 输出到文件

import xlrd
import json
from datetime import datetime
from xlrd import xldate_as_tuple

worksheet = xlrd.open_workbook(u'text.xlsx')
sheet_names= worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
    sheet = worksheet.sheet_by_name(sheet_name)
    rows = sheet.nrows # 获取行数
    cols = sheet.ncols # 获取列数,
    all_content = {}
    for i in range(rows) :
        crmid = ''
        for j in range(cols):
            cell = sheet.cell_value(i, j) #
            ctype = sheet.cell(i, j).ctype
            if j==0 :
                try:
                    id = int(cell)  # 以第一列做键值
                except ValueError as e:
                    id = cell
                all_content[id] = []
            
            if ctype ==3: # 若是日期格式转换为固定格式
                date = datetime(*xldate_as_tuple(cell, 0))
                cell = date.strftime('%Y-%n-%d')
            else:
                pass
            
            all_content[id].append(cell)
    res = json.dumps(all_content)
    with open('test.txt', 'a') as f:
        f.write(res) # 为啥输出到文件呢,因为数据太多的时候print打印不全
    print (res)

ps版本:按行或列获取全部:

import xlrd

worksheet = xlrd.open_workbook(u'test.xlsx')
sheet_names= worksheet.sheet_names()
print(sheet_names)
for sheet_name in sheet_names:
    sheet = worksheet.sheet_by_name(sheet_name)
    rows = sheet.nrows # 获取行数
    cols = sheet.ncols # 获取列数

    # 输出每一行数据
    all_content = []
    row_content = []
    for i in range(rows) :
        row_content = []
        for j in range(cols) :
            cell = sheet.cell_value(i, j) # 取第i行第j列数据 
            row_content.append(cell)
        all_content.append(row_content)
    print(all_content)

    # 输出每一列数据
    all_content = []
    col_content = []
    for i in range(cols) :
        col_content = []
        for j in range(rows) :
            cell = sheet.cell_value(j, i) # 取第i列第j行数据
            col_content.append(cell)
        all_content.append(col_content)
    print(all_content)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值