利用Python删除xlsx文件中的行

0 投票
1 回答
3616 浏览
提问于 2025-04-18 14:34

我有一个xlsx文件,里面有很多列,但为了举例,我只描述其中的两列:

period | value
--------------
1402   | AB
1402   | ABxx
1403   | AC
1403   | ACxx
1404   | MM
1404   | MMXX

我需要删除那些period < 1403 或 period > 1403的行。

所以我想这样做:

  1. 打开上面的xlsx文件
  2. 遍历所有的列和行
  3. 把那些period < 1403 或 period > 1403的行复制到一个新的xlsx文件里
  4. 关闭这两个xlsx文件

我正在使用xlsxwriter,这是我如何从一个字典创建第一个xlsx文件的方法。

def saveDataToNewFile(filename,sheetName, data) :
    # Create workbook
    wb = xlsxwriter.Workbook(filename)
    ws = wb.add_worksheet(sheetName)
    # Write header
    headers = data[0].keys()
    for column, header in enumerate(headers):
        ws.write(0, column, header)
    date_format = wb.add_format({'num_format': 'dd/mm/yyyy'})
    # Write data
    for row, row_data in enumerate(data, start=1):
        for column, key in enumerate(headers):
            ws.write(row, column, row_data[key],date_format)
    wb.close()

有没有什么好的建议呢?

1 个回答

0

写入一个新的xlsx文件的代码看起来是对的。所以你需要做的就是从原始文件中获取你需要写入的数据。

我建议你使用 xlrd 来读取数据,并跳过任何不符合你要求的数据。

撰写回答