现有一个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')
结果: