excel文本读取以及python 行转列

现有一个xlsx格式的excel需要进行处理,故需要用python来读取xlsx文本,然后再将处理结果写入xlsx文本。

在这里我们将使用xlwt/xlrd库:

存Excel文件:(如果存储数据中有字符,那么写法还有点小小的变化)

import xlwt

workbook = xlwt.Workbook(encoding='utf-8')
booksheet = workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)
# 存第一行cell(1,1)和cell(1,2)
booksheet.write(0, 0, 34)
booksheet.write(0, 1, 38)
# 存第二行cell(2,1)和cell(2,2)
booksheet.write(1, 0, 36)
booksheet.write(1, 1, 39)
# 存一行数据
rowdata = [43, 56]
for i in range(len(rowdata)):
    booksheet.write(2, i, rowdata[i])
workbook.save('test_xlwt.xls')
结果:

读Excel文件:(同样是对于数值类型数据)

import xlrd

workbook = xlrd.open_workbook('test_xlwt.xls')
print(workbook.sheet_names())  # 查看所有sheet
booksheet = workbook.sheet_by_index(0)  # 用索引取第一个sheet
booksheet = workbook.sheet_by_name('Sheet 1')  # 或用名称取sheet
# 读单元格数据
cell_11 = booksheet.cell_value(0, 0)
cell_21 = booksheet.cell_value(1, 0)
# 读一行数据
row_3 = booksheet.row_values(1)
print(cell_11, cell_21, row_3)

行转列:

现有的表格的数据为:


需要将第四列的数据转为列,并保存为表格。

扫描二维码关注公众号,回复: 1574814 查看本文章
import xlrd
import xlwt
#读操作
workbook = xlrd.open_workbook('test.xlsx')
booksheet = workbook.sheet_by_name('Sheet1')
#写操作
write_workbook = xlwt.Workbook(encoding='utf-8')
booksheet02 = write_workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)
col_ = 0
col = 0
#存储为文本格式
#outdata = open('test1.txt', 'w', encoding="utf-8")
for row in range(booksheet.nrows):
    row_content = booksheet.row_values(row)
    #print(row_content) ['人类', '文明', '知识', '一,二,三,四,五']
    #将第四列的数据切分
    col_4 = row_content[3].split(',')
    # 列数
    col_ += len(col_4)
    for j in range(0,len(col_4)):
        #print(row_content[0])
        #xls文本中的一行内容
        rowdata = [row_content[0],row_content[1],row_content[2],col_4[j]]
        if col < col_:
            for i in range(len(rowdata)):
                booksheet02.write(col,i,rowdata[i])
            col += 1
write_workbook.save('test_01.xls')
    #booksheet02.write(row_content[0],row_content[1],row_content[2],col_4[j])
    #存储为文本格式对应的写操作 outdata.write('\t'.join(row_content[0]+row_content[1]+row_content[2]+col_4[j])+'\n')

结果:

猜你喜欢

转载自blog.csdn.net/weixin_38987362/article/details/80630947