我目前面临一个问题,我需要把所有的数据显示在下面的图片到一行。在
因此,使用Python和Openpyxl,我试图编写一个解析脚本,它读取行,并且只在值不为null或不相同时复制到一个新的工作簿中。在
我得到了超出范围的错误,代码并不是只保留我想要的数据。我已经花了好几个小时在上面了,所以我想我可以问一下我是否可以解开它。在
我读过一些关于Openpyxl和python列表的文档,在youtube上试过几段视频,但是没有一个能达到我想要的效果。在
import openpyxl
from openpyxl import Workbook
path = "sample.xlsx"
wb = openpyxl.load_workbook(path)
ws = wb.active
path2 = "output.xlsx"
wb2 = Workbook()
ws2 = wb2.active
listab = []
rows = ws.max_row
columns = ws.max_column
for i in range (1, rows+1):
listab.append([])
cellValue = " "
prevCell = " "
for c in range (1, rows+1):
for r in range(1, columns+1):
cellValue = ws.cell(row=r, column=c).value
if cellValue == prevCell:
listab[r-1].append(prevCell)
elif cellValue == "NULL":
listab[r-1].append(prevCell)
elif cellValue != prevCell:
listab[r-1].append(cellValue)
prevCell = cellValue
for r in range(1, rows+1):
for c in range (1, columns+1):
j = ws2.cell(row = r, column=c)
j.value = listab[r-1][c-1]
print(listab)
wb2.save("output.xlsx")
应该有一行包含以下信息:
ods服务|服务|服务|服务|计划| CPU | RAM |网卡|驱动器|
我建议使用pandas库来实现这一点,然后您可以轻松地进行任何类型的转换。在
您可以轻松删除
null/na value
,也可以替换它并将其导出为excel格式。在帮助参考:
Reading Excel
Drop Na Value
Replace NA Value
老实说,我认为您已经被数据结构弄糊涂了,并想出了比您需要的复杂得多的东西。在
一种适合的方法是为每个服务使用Python字典,逐行更新它们。在
请注意如何不用计数器就可以做任何事情。在
就我个人而言,我会选择
pandas
。在上面的方法应该行得通,但是我不太确定您希望如何保存相同id的重复记录。您是否希望将它们存储为
DRIVE_0
、DRIVE_1
、DRIVE_2
?在编辑:
df可以用不同的方式导出。将下面的
^{pr2}$#export to Excel
替换为以下内容:编辑2:
由于没有输入数据,很难看到任何数据流。用假数据更正了上面的代码
相关问题 更多 >
编程相关推荐