excel合并,怎么去掉列名呢,和索引呢,谢谢
import xlrdimport xlsxwriter
path1 = r"C:\Users\Administrator\Desktop\bat\12309\化学优秀.xlsx"
path2 = r"C:\Users\Administrator\Desktop\bat\12309\历史优秀.xlsx"
path3 = r"C:\Users\Administrator\Desktop\bat\12309\数学优秀.xlsx"
path4 = r"C:\Users\Administrator\Desktop\bat\12309\物理优秀.xlsx"
path5 = r"C:\Users\Administrator\Desktop\bat\12309\英语优秀.xlsx"
path6 = r"C:\Users\Administrator\Desktop\bat\12309\语文优秀.xlsx"
path7 = r"C:\Users\Administrator\Desktop\bat\12309\政治优秀.xlsx"
path8 = r"C:\Users\Administrator\Desktop\bat\12309\优秀.xlsx"
source_xls =
target_xls = path8
# 读取数据
data = []
for i in source_xls:
wb = xlrd.open_workbook(i)
for sheet in wb.sheets():
for rownum in range(sheet.nrows):
rownum = rownum + 1
data.append(sheet.row_values(rownum))
print(data)
# 写入数据
workbook = xlsxwriter.Workbook(target_xls)
worksheet = workbook.add_worksheet()
font = workbook.add_format({"font_size":14})
for i in range(len(data)):
for j in range(len(data)):
worksheet.write(i, j, data, font)
# 关闭文件流
workbook.close()
上面是代码
Chinese Maths English Physics Chemistry Politics History
0 0.93 0.97 0.97 0.95 0.98 0.88 0.95
1 0.9 1 0.92 0.92 0.97 0.9 0.91
2 0.93 0.89 0.91 0.92 0.97 0.88 0.91
3 0.9 0.92 1 1 0.93 0.9 0.93
4 0.87 0.84 0.95 0.79 0.94 1 0.91
5 0.84 0.99 0.87 0.98 0.96 0.92 0.93
7 0.99 0.87 0.78 0.92 0.93 0.85 0.93
8 1 0.73 0.78 0.94 1 0.9 1
Chinese Maths English Physics Chemistry Politics History
0 0.93 0.97 0.97 0.95 0.98 0.88 0.95
1 0.9 1 0.92 0.92 0.97 0.9 0.91
2 0.93 0.89 0.91 0.92 0.97 0.88 0.91
3 0.9 0.92 1 1 0.93 0.9 0.93
4 0.87 0.84 0.95 0.79 0.94 1 0.91
5 0.84 0.99 0.87 0.98 0.96 0.92 0.93
6 0.89 0.91 0.91 0.71 0.85 0.88 0.91
7 0.99 0.87 0.78 0.92 0.93 0.85 0.93
8 1 0.73 0.78 0.94 1 0.9 1
11 0.87 0.91 0.75 0.7 0.81 0.7 0.93
13 0.75 0.65 0.63 0.51 0.53 0.62 0.91
Chinese Maths English Physics Chemistry Politics History
0 0.93 0.97 0.97 0.95 0.98 0.88 0.95
1 0.9 1 0.92 0.92 0.97 0.9 0.91
上面是出来的效果,第一行的索引可以去掉吗,列名也是多次出现,可以把列名去掉吗,谢谢 for rownum in range(1, sheet.nrows): # 去掉头需要优化,第一次不去
rownum = rownum + 1
a = sheet.row_values(rownum)
a =
data.append(a) # 去掉索引 z5560636 发表于 2021-12-30 17:59
for rownum in range(sheet.nrows):
if rownum > 1:
data.append(sheet.row_values(rownum,2,))
我是这样写的,可以做到,但是现在的问题,是,怎么样才能保留一下列名?或者怎么从保存的表里 从第二行输入,这样就可以保留列名了 z5560636 发表于 2021-12-30 17:59
怎么做到第一次不去掉头,或者 从写入的表的第二行输入呢,这样可以可以手动加上列名也是可以的 swanseabrian 发表于 2021-12-30 19:33
怎么做到第一次不去掉头,或者 从写入的表的第二行输入呢,这样可以可以手动加上列名也是可以的
for sheet in wb.sheets():
for rownum in range(sheet.nrows):
if len(data)>1 and "Chinese" in data:
continue # 去头 z5560636 发表于 2021-12-31 09:49
import xlrd
import xlsxwriter
path1 = r"C:\Users\Administrator\Desktop\bat\12309\化学优秀.xlsx"
path2 = r"C:\Users\Administrator\Desktop\bat\12309\历史优秀.xlsx"
path3 = r"C:\Users\Administrator\Desktop\bat\12309\数学优秀.xlsx"
path4 = r"C:\Users\Administrator\Desktop\bat\12309\物理优秀.xlsx"
path5 = r"C:\Users\Administrator\Desktop\bat\12309\英语优秀.xlsx"
path6 = r"C:\Users\Administrator\Desktop\bat\12309\语文优秀.xlsx"
path7 = r"C:\Users\Administrator\Desktop\bat\12309\政治优秀.xlsx"
path8 = r"C:\Users\Administrator\Desktop\bat\12309\优秀.xlsx"
source_xls =
target_xls = path8
# 读取数据
data = []
wb = xlrd.open_workbook(path1)
for sheet in wb.sheets():
for rownum in range(sheet.nrows):
print(rownum)
a = sheet.row_values(rownum)
print(a)
a = a
data.append(a)
for i in source_xls:
# wb = xlrd.open_workbook(i)
for sheet in wb.sheets():
for rownum in range(sheet.nrows):
if rownum > 0:
a = sheet.row_values(rownum)
a = a
data.append(a)
print(data)
# 写入数据
workbook = xlsxwriter.Workbook(target_xls)
worksheet = workbook.add_worksheet()
font = workbook.add_format({"font_size":14})
for i in range(len(data)):
for j in range(len(data)):
worksheet.write(i, j, data, font)
# 关闭文件流
workbook.close()
我是这样写的,先把一个表不去头放列表里,然后再去头放其它的
可是这样出来的结果 都是一个表的数据,不知道哪里在的问题
print(data),看着是正确的, 但写入的时候全是一个表的内容,
找不到原因,帮忙分析一下,谢谢 z5560636 发表于 2021-12-31 09:49
为啥我写两个循环会出问题? 用之前的一个循环的没问题 swanseabrian 发表于 2022-1-1 08:40
我是这样写的,先把一个表不去头放列表里,然后再去头放其它的
可是这样出来的结果 都是一个表的数据, ...
# wb = xlrd.open_workbook(i)
你自己注释掉了。 没看明白。
不过我觉得可以先用pandas拼接好数据,再写入文件。应该可以 建议看下pandas,contact合并不用考虑这个麻烦,可以看下下图示意
rsj0315 发表于 2022-1-10 22:55
建议看下pandas,contact合并不用考虑这个麻烦,可以看下下图示意
够用啊 swanseabrian 发表于 2022-1-11 11:31
够用啊
干这事正好用
页:
[1]