边框的意外行为:* no_line

时间:2016-07-21 08:02:41

标签: python xlwt

我正在尝试创建没有边框的单元格,但不知何故,默认的细边框始终存在。

from xlwt import Workbook,easyxf

tl = easyxf('border: top thick, right no_line, bottom no_line, left thick')
tr = easyxf('border: top thick, right thick, bottom no_line, left no_line')
br = easyxf('border: top no_line, right thick, bottom thick, left no_line')
bl = easyxf('border: top no_line, right no_line, bottom thick, left thick')

w = Workbook()
ws = w.add_sheet('Border')

ws.write(1, 1, style=tl)
ws.write(1, 2, style=tr)
ws.write(2, 1, style=bl)
ws.write(2, 2, style=br)

w.save('borders-test.xls')

我得到的是

Result

但我希望(厚边框内没有细边框)

Expectation

我正在寻找让no_line按预期工作的解决方案(或者理解它实际上是一些不同的东西并调整我的期望)。然而,我并不是在寻找像#34这样的解决方法;设置边框的颜色与背景相同" (除非知道GUI以相同的方式工作)。

Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin

xlwt==1.1.2

P.S。只需从代码中删除... no_line部分(因为它是默认设置)没有任何区别。

1 个答案:

答案 0 :(得分:0)

使用top_color 颜色,bottom_color 颜色,left_color 颜色,right_color 颜色在你的情况下它应该是白色。

你不想在 tl 中使用边框,你不想要右边和底部的边框,所以设置right_color white,bottom_color white。

   from xlwt import Workbook,easyxf

   tl = easyxf('border: top thick, bottom thick, left thick, right thick,
                right_color white, bottom_color white')
   tr = easyxf('border: top thick, bottom thick, left thick, right thick,
                left_color white,  bottom_color white')
   br = easyxf('border: top thick, bottom thick, left thick, right thick,
                left_color white,  top_color white')
   bl = easyxf('border: top thick, bottom thick, left thick, right thick,
                right_color white, top_color white')
   w = Workbook()
   ws = w.add_sheet('Border')

   ws.write(1, 1, style=tl)
   ws.write(1, 2, style=tr)
   ws.write(2, 1, style=bl)
   ws.write(2, 2, style=br)

   w.save('borders-test.xls')

希望这能解决你的问题。