@@ -243,17 +243,21 @@ def _get_is_wrap_text(self, props: Mapping[str, str]) -> bool | None:
243
243
def build_border (
244
244
self , props : Mapping [str , str ]
245
245
) -> dict [str , dict [str , str | None ]]:
246
- return {
247
- side : {
248
- "style" : self ._border_style (
249
- props .get (f"border-{ side } -style" ),
250
- props .get (f"border-{ side } -width" ),
251
- self .color_to_excel (props .get (f"border-{ side } -color" )),
252
- ),
253
- "color" : self .color_to_excel (props .get (f"border-{ side } -color" )),
246
+ border_dict = {}
247
+ for side in ["top" , "right" , "bottom" , "left" ]:
248
+ style = self ._border_style (
249
+ props .get (f"border-{ side } -style" ),
250
+ props .get (f"border-{ side } -width" ),
251
+ self .color_to_excel (props .get (f"border-{ side } -color" )),
252
+ )
253
+ color = self .color_to_excel (props .get (f"border-{ side } -color" ))
254
+ if style and style != "none" and color is None :
255
+ color = self .color_to_excel ("black" )
256
+ border_dict [side ] = {
257
+ "style" : style ,
258
+ "color" : color
254
259
}
255
- for side in ["top" , "right" , "bottom" , "left" ]
256
- }
260
+ return border_dict
257
261
258
262
def _border_style (self , style : str | None , width : str | None , color : str | None ):
259
263
# convert styles and widths to openxml, one of:
0 commit comments