问题描述
给出以下数据:
import pandas as pd
import numpy as np
# sample data
np.random.seed(1)
np.random.seed(1)
df = pd.DataFrame(
np.random.randint(low=0,high=1000,size=(6,5)),columns=["X","a","b","c","d"],index=["a","X","d","e","X"],)
with pd.ExcelWriter("testing.xlsx") as writer:
# need to create xlsx output for this example
sheet_name = "Sheet1"
df.to_excel(writer,sheet_name=sheet_name)
workbook = writer.book
worksheet = writer.sheets[sheet_name]
# create horizontal line
row_range = (3,3)
col_range = (1,8)
worksheet.conditional_format(
row_range[0],col_range[0],row_range[1],col_range[1],{
"type": "no_errors","format": workbook.add_format(
{
"top": 2,"border_color": "red",}
),},)
# create vertical line
row_range = (1,9)
col_range = (4,4)
worksheet.conditional_format(
row_range[0],"format": workbook.add_format(
{
"left": 2,)
但是格式不正确(或不符合要求),并且显示为:
不正确的部分是:
似乎我无法两次格式化一个单元格?这是个问题。
这个问题可能会从创建重叠的边界过渡到创建重叠的条件格式,这一点很普遍,我对xlsxwriter并不十分了解。
解决方法
我发现了解决方法,原因似乎是一个错误,我不是该模块的作者。
这个想法是不要让细胞重叠。我将2个范围分为5个范围。十字路口的牢房有2个边界。
import pandas as pd
import numpy as np
# sample data
np.random.seed(1)
np.random.seed(1)
df = pd.DataFrame(
np.random.randint(low=0,high=1000,size=(6,5)),columns=["X","a","b","c","d"],index=["a","X","d","e","X"],)
with pd.ExcelWriter("C:\\Users\\kemot\\Desktop\\programy Python\\testing.xlsx") as writer:
# need to create xlsx output for this example
sheet_name = "Sheet1"
df.to_excel(writer,sheet_name=sheet_name)
workbook = writer.book
worksheet = writer.sheets[sheet_name]
# create horizontal line
worksheet.conditional_format(
'A4:B4',{
"type": "no_errors","format": workbook.add_format(
{
"bottom": 2,"border_color": "red",}
),},)
worksheet.conditional_format(
'C4',"format": workbook.add_format(
{
"right": 2,"bottom": 2,)
worksheet.conditional_format(
'D4:F4',)
# create vertical line
worksheet.conditional_format(
'D1:D3',"format": workbook.add_format(
{
"left": 2,)
worksheet.conditional_format(
'D5:D10',)