python拆分excel的sheet为单文件_如何使用python在excel工作簿中拆分合并的单元格

是否有任何方法使用python在Excel工作簿中拆分/拆分单元格?我想解释如下 -如何使用python在excel工作簿中拆分合并的单元格

JSkCp.jpg

结果应符合以下条目的新的Excel文件 -

rWVbf.jpg

使用xlrd所有合并列是复制相同的字符串我的解决办法如下所示 -

[注意:“formatted_info = True”标志尚未在xlrd中实现,因此我无法直接获取合并单元的列表..我不是s 。upposed升级xlrd上设置]

def xlsx_to_dict():

workbook = xlrd.open_workbook(xlsfile)

worksheet_names = workbook.sheet_names()

for worksheet_name in worksheet_names:

worksheet = workbook.sheet_by_name(worksheet_name)

num_rows = worksheet.nrows - 1

num_cells = worksheet.ncols - 1

curr_row = -1

header_row = worksheet.row(0)

columns = []

for cell in range(len(header_row)):

value = worksheet.cell_value(0, cell)

columns.append(value)

cities = []

for row in range(1,num_rows):

value = worksheet.cell_value(row,0)

type = worksheet.cell_type(row,0)

if not value == "":

cities.append(value)

names = []

for row in range(1,num_rows):

value = worksheet.cell_value(row,1)

type = worksheet.cell_type(row,1)

if not value == "":

names.append(value)

current_city = cities[0]

result_dict = {}

for curr_row in range(1,num_rows):

row = worksheet.row(curr_row)

curr_cell = -1

curr_name = names[0]

while curr_cell < num_cells:

curr_cell += 1

cell_value = worksheet.cell_value(curr_row, curr_cell)

if cell_value in cities and curr_cell == 0:

current_city = cell_value

if not result_dict.has_key(current_city):

result_dict[current_city] = {}

continue

if cell_value == "" and curr_cell == 0:

continue

if cell_value in names and curr_cell == 1:

curr_name = cell_value

if not result_dict[current_city].has_key(curr_name):

result_dict[current_city][curr_name] = {}

continue

if cell_value == "" and curr_cell == 1:

continue

try:

result_dict[current_city][curr_name]['Phone'].append(cell_Value)

except:

result_dict[current_city][curr_name]['Phone'] = [cell_value]

上述函数将返回如下的Python字典 -

{ 'New York' : { 'Tom' : [92929292, 33929] }, ........}

我会再遍历目录,并写入新的Excel。

但是,我想要一些拆分合并单元格的通用方法。

+1

请分享您迄今尝试过的方法吗?否则,人们会继续向下投票 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值