为了账号安全,请及时绑定邮箱和手机立即绑定

从现有工作簿表中删除行和列

从现有工作簿表中删除行和列

繁华开满天机 2022-11-29 15:33:05
我试图从sheet除前三列和从坐标 (U - AA) 开始的所有列之外的所有填充行中删除。除了最后的标题,我必须删除所有填写的信息。如何删除我不明白的列,但是当我运行删除行的脚本时,信息仍然存在,只删除了样式。如何正确执行此类操作?class DownloadRfiExcelFile(APIView):    """    Download rfi excel file to user    """    def get(self, request, format=None, **kwargs):        file = default_storage.url('test.xlsx')        wb = load_workbook(filename=file)        response = HttpResponse(content_type='application/vnd.ms-excel')        response['Content-Disposition'] = 'attachment; filename="test.xlsx"'        sheet = wb["RT"]        for rowNum in range(3, 1114):                sheet.delete_rows(rowNum)        for col in sheet.iter_cols():            for cell in col:                # delete from U to AA row        wb.save(response)        return response
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

要删除rowscolumns仅使用:

  • sheet.delete_rows({first_row}, {amount})

  • sheet.delete_cols({first_col}, {amount})

因此,请阅读openpyxl 文档中的更多信息。请注意,列表示为整数A == 1, B ==2,依此类推。

import string


def col2num(col):

    # Utility function to convert column letters to numbers


    num = 0

    for c in col:

        if c in string.ascii_letters:

            num = num * 26 + (ord(c.upper()) - ord('A')) + 1

    return num


# Setting initial values for deletion

starting_row = 4

starting_col = col2num('U')

last_col = col2num('AA')


# Deleting rows and columns

sheet.delete_rows(starting_row, sheet.max_row-starting_row)

sheet.delete_cols(starting_col, last_col-starting_col)


查看完整回答
反对 回复 2022-11-29
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信