gpt4 book ai didi

excel - 使用 python 设置单个 Excel 单元格中的单个字符的格式

转载 作者:行者123 更新时间:2023-12-02 01:04:18 27 4
gpt4 key购买 nike

我在带有 Python 2.7 的 Windows Vista 操作系统上使用 xlrd、xlwt 和 xlutils。我在 Excel 工作表中有一组 DNA 序列,长度为 100 个字符,每个序列都在一个单元格中。我试图在 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')

我的问题是添加样式会更改整个单元格,并且我只想修改某些字符。此外,随后写入同一单元格会覆盖之前的内容。有没有办法修改单个单元格中的单个字符,或者向其中已有文本的现有单元格添加不同格式的文本?

如果您需要我忽略的其他信息,请告诉我。感谢您提前抽出时间。

布雷特

最佳答案

xlwt 的最新版本包含在单元格内使用富文本的功能。通常您会使用 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')

您应该能够根据您的目的调整上述内容。请注意,您仍然必须立即写入或覆盖整个单元格;您以后无法返回并仅更新单元格的一部分。

关于excel - 使用 python 设置单个 Excel 单元格中的单个字符的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com