Bre*_*son 7 excel xlrd xlwt xlutils
我在使用Python 2.7的Windows Vista操作系统上使用xlrd,xlwt和xlutils.我在excel工作表中有一组100个字符的DNA序列,每个序列在一个单元格中.我试图在excel中的每个序列中的特定位置突出显示字符(加粗或改变颜色),但是没有找到在单元格中格式化单个字符的方法.根据我的知识,应用样式将其应用于整个单元格.因此,我试图将序列分解为单个组件,其中序列的某些部分将使用样式进行修改,而其他部分则不会,然后将这些部分一起整理回单个单元格中的单个字符串.
码:
rb = open_workbook('Mybook', formatting_info=True)
rs = rb.sheet_by_index(0)
wb = copy(rb)
ws = wb.get_sheet(0)
minus35style = xlwt.easyxf('font: bold 1') # style I'd like for just one character
for b in range(0, 368, 1):
rscellin = rs.cell(b,9)
f = rscellin.value
tominus35 = str(f[0:34])
minus35 = str(f[35:36])
ws.write(b, 14, tominus35)
ws.write(b, 14, minus35, minus35style)
wb.save('Mybook')
我的问题是添加样式会改变整个单元格,我只想修改某些字符.此外,后续写入同一单元格会覆盖之前的内容.是否有修改单个字符在一个单元格,或以不同格式的文本添加到已有的文本将现有电池的方法吗?
如果您需要我忽略的其他信息,请与我们联系.我提前感谢您的时间.
布雷特
Joh*_*n Y 10
最新版本xlwt包括在单元格中使用RTF的功能.通常你会使用ws.write,ws.write_rich_text改为使用.前两个参数是行索引和列索引,像往常一样; 但是下一个参数是一系列组件.每个组件可以是"裸"文本值或(文本,字体)对.裸文本值将使用单元格整体样式中的字体,可以使用可选的第四个参数指定.
对于(文本,字体)对,最简单的方法是使用新easyfont功能生成字体,这类似于easyxf字体.这是一个例子:
import xlwt
wb = xlwt.Workbook()
ws = wb.add_sheet('Sheet1')
font0 = xlwt.easyfont('')
font1 = xlwt.easyfont('bold true')
font2 = xlwt.easyfont('color_index red')
style = xlwt.easyxf('font: color_index blue')
seg1 = ('bold', font1)
seg2 = ('red', font2)
seg3 = ('plain', font0)
seg4 = ('boldagain', font1)
ws.write_rich_text(2, 5, (seg1, seg2, seg3, seg4))
ws.write_rich_text(4, 1, ('xyz', seg2, seg3, '123'), style)
wb.save('rich_text.xls')
Run Code Online (Sandbox Code Playgroud)
您应该能够根据您的目的调整上述内容.请注意,您仍然必须立即写入或覆盖整个单元格; 您不能再返回并稍后更新单元格的一部分.
| 归档时间: |
|
| 查看次数: |
3303 次 |
| 最近记录: |