如何在 Excel 中提取格式化的单元格及其对应的行

How to extract formatted cells and their corresponding rows in Excel

SO,我的问题如下:

使用下面编写的脚本,我成功地格式化了提取的 excel sheet 中的某些单元格。它旨在接受任何 excel 文件,只要输入正确且格式相同(就我而言,格式始终相同)。

我的下一步(我的问题):是如何获取已格式化的单元格及其对应的行,然后将这些行打印到一个新文件中。

使用一个非常相似的程序,我能够获取所选格式的 excel 文件。 但是不知道我的课程是什么

def ready():

    print("Type the name of the excel file you wish to analyze.")

    while True:
        try:
            a_input = input(">> ")

            df = pd.read_excel("{}".format(a_input), parse_cols = "AS")

            df2 = pd.read_excel("{}".format(a_input), parse_cols = "B")

            df3 = pd.read_excel("{}".format(a_input), parse_cols = "A")

            df4 = pd.read_excel("{}".format(a_input), parse_cols = "D")

            df5 = pd.read_excel("{}".format(a_input), parse_cols = "C")

        except IOError:
            print("The file name was either entered incorrectly or is not in the directory")

        else:
            print("--------------------File Grab Successful--------------------")
            break

    time.sleep(2)

    print("Grabbing the required data.....\n\n")

    df.set_index('Last Date of Support', inplace=True)

    df2.set_index('Product Series', inplace=True)

    df3.set_index('Product Family', inplace=True)

    df4.set_index('Item Name', inplace=True)

    df5.set_index('Item Type', inplace=True)

    time.sleep(2)

    print("--------------Creating Excel Document with required data------------------\n\n")

    time.sleep(2)

    print("Type the name you want for the excel file that will be created. Be sure to add the file extension on the end (EX: filename.xlsx)")

    b_input = input(">> ")

    writer = pd.ExcelWriter('{}'.format(b_input), engine='xlsxwriter')

    df.to_excel(writer, sheet_name='Sheet1', startrow=-1, startcol=0)

    df2.to_excel(writer, sheet_name='Sheet1', startrow=-1, startcol=4)

    df3.to_excel(writer, sheet_name='Sheet1', startrow=-1, startcol=2)

    df4.to_excel(writer, sheet_name='Sheet1', startrow=-1, startcol=3)

    df5.to_excel(writer, sheet_name='Sheet1', startrow=-1, startcol=1)

    workbook = writer.book

    worksheet = writer.sheets['Sheet1']

    date = datetime.datetime.strptime('2018-01-01', "%Y-%m-%d")

    format1 = workbook.add_format({'bg_color': '#FFC7CE',
                                   'font_color': '#9C0006'})

    worksheet.conditional_format('A2:A20000', {'type': 'date',
                                              'criteria': 'less than',
                                              'value':  date,
                                              'format': format1})

    writer.save()

    print("Goodbye!")

    time.sleep(5)

ready()

使用一个非常相似的程序,我能够获取所选格式的 excel 文件。 但不知道我的行动方针是什么。 这是我尝试过的一个例子。

 format1 = workbook.add_format({'bg_color': '#FFC7CE',
                                   'font_color': '#9C0006'})

    for i in df == format1:
        print(i)

但我一直收到错误消息。

抱歉编辑 post, 我在完成之前点击了前进。

你写的循环不正确。那是因为 df==format1 等同于布尔值 True。如果你只想在某些条件成立时打印 i,请执行:

upperBound = 1000
for i in range(upperBound):
    if df==format1:
        print(i)