我的代码打开一个Excel工作簿,并复制工作簿上前四页的前两行。
使用此代码,如果您参考所需的输出,它会生成5个不同的列,我希望它是2个不同的列。
我不明白的另一件事是为什么第3和第4列是浮点数。为什么要把它变成漂浮物?
我试图创建一个更好的问题,因为我的其他问题并没有得到很好的接受,所以如果你有任何反馈也有帮助。
workbook = xlrd.open_workbook('input.xlsx')
data = []
for i in range (0,5):
sheet = workbook.sheet_by_index(i)
data.append([sheet.cell_value(row, 0) for row in range(sheet.nrows)])
data.append([sheet.cell_value(row, 1) for row in range(sheet.nrows)])
transposed = zip(*data)
with open('file.txt','w') as fou:
writer = csv.writer(fou, delimiter='\t')
for row in transposed:
writer.writerow(row)
输出:
F800 00 F8C8 32.0
F804 01 F8CC 33.0
F808 02 F8D0 34.0
F80C 03 F8D4 35.0
F810 04 F8D8 36.0
F814 05 F8DC 37.0
F818 06 F8E0 38.0
期望输出:
F800 00
F804 01
F808 02
F80C 03
F810 04
F814 05
F818 06
F81C 07
F8C8 32
F8CC 33
F8D0 34
F8D4 35
F8D8 36
F8DC 37
F8E0 38
答案 0 :(得分:1)
试试这个:
data = [[], []]
for i in range (0,5):
sheet = workbook.sheet_by_index(i)
data[0].extend([sheet.cell_value(row, 0) for row in range(sheet.nrows)])
data[1].extend([sheet.cell_value(row, 1) for row in range(sheet.nrows)])
transposed = zip(*data)
with open('file.txt','w') as fou:
writer = csv.writer(fou, delimiter='\t')
for row in transposed:
writer.writerow(row)
data
已初始化为包含2个空列表。这些列表在for
循环中扩展。这应该可以获得正确数量的输出列。
对于浮点值问题,Excel将数值数据存储为浮点数(无整数)。因此,在导出之前,您可能需要使用Excel的格式化功能来删除小数或将数字转换为文本。
希望有所帮助。