如何在 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)
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)