使 Excel 单元格中的某些字符成为下标 Python
Make certain characters in an Excel cell subscript Python
我正在尝试编写一个 Python 脚本,它获取 Excel 电子表格单元格中的文本,并使某些字符成为下标或上标。我使用的是 OpenPyxl,但我读到它不允许修改小于整个单元格的内容,因此我愿意在必要时使用不同的包。
作为参考,我需要每个单元格中“T”后的 2 个字符作为下标。因此,将字符串“T12+0.10”或“<(T12+17.00”格式化,使“12”成为下标,如下图所示。
这是我目前的情况:
style = XFStyle()
style.font = fnt
style.borders = borders
substyle = fnt.ESCAPEMENT_SUBSCRIPT
superstyle = fnt.ESCAPEMENT_SUPERSCRIPT
def compare(contents):
s = ""
for i in contents:
nextchar=contents[i+1].value
if i.value.contains ("T"):
j = i + 1, substyle
s += str(s + j)
else:
s += str(i)
wb = op.load_workbook("file_name.xlsx")
ws = wb["Sheet3"]
for row in ws.iter_rows("C{}:C{}".format(ws.min_row, ws.max_row)):
for cell in row:
contents = cell.value
compare(contents)
使用 Xlwings,您可以这样做,假设单元格内容中有 'T' 的地方接下来的两个字符是下标的。
import xlwings as xw
wb = xw.Book('Book1.xlsx)
ws = wb.sheets('Sheet1')
for x in range(1, 6):
contents = ws.range(1, x).value
if 'T' in contents: # Checks for T in the cell contents
i = contents.index('T')+1
ws.range(1, x).characters[i:i+2].api.Font.Subscript = True
wb.save()
wb.close()
例如,这会将以下单元格从
更改为 A1:E1
T12+0.10 <(T12+17.00 A12+1.11 A+0.10T12 B14+111
到
我正在尝试编写一个 Python 脚本,它获取 Excel 电子表格单元格中的文本,并使某些字符成为下标或上标。我使用的是 OpenPyxl,但我读到它不允许修改小于整个单元格的内容,因此我愿意在必要时使用不同的包。
作为参考,我需要每个单元格中“T”后的 2 个字符作为下标。因此,将字符串“T12+0.10”或“<(T12+17.00”格式化,使“12”成为下标,如下图所示。
这是我目前的情况:
style = XFStyle()
style.font = fnt
style.borders = borders
substyle = fnt.ESCAPEMENT_SUBSCRIPT
superstyle = fnt.ESCAPEMENT_SUPERSCRIPT
def compare(contents):
s = ""
for i in contents:
nextchar=contents[i+1].value
if i.value.contains ("T"):
j = i + 1, substyle
s += str(s + j)
else:
s += str(i)
wb = op.load_workbook("file_name.xlsx")
ws = wb["Sheet3"]
for row in ws.iter_rows("C{}:C{}".format(ws.min_row, ws.max_row)):
for cell in row:
contents = cell.value
compare(contents)
使用 Xlwings,您可以这样做,假设单元格内容中有 'T' 的地方接下来的两个字符是下标的。
import xlwings as xw
wb = xw.Book('Book1.xlsx)
ws = wb.sheets('Sheet1')
for x in range(1, 6):
contents = ws.range(1, x).value
if 'T' in contents: # Checks for T in the cell contents
i = contents.index('T')+1
ws.range(1, x).characters[i:i+2].api.Font.Subscript = True
wb.save()
wb.close()
例如,这会将以下单元格从
更改为 A1:E1T12+0.10 <(T12+17.00 A12+1.11 A+0.10T12 B14+111
到