openpyxl - 如何用前导单引号放置值
openpyxl - how to put value with a leading single quote
在Excel中,单引号前缀用于指定该值是文本,不应转换为任何其他类型。
通常,单引号在查看工作簿时不显示(但在编辑单元格内容时可见)。
是否可以使用 openpyxl 将这样的值放入单元格中?我没找到办法。
这里是示例代码
import openpyxl
import os
wb = openpyxl.Workbook()
sheet = wb.get_active_sheet()
sheet.cell("A1", value="'value")
sheet.cell("B1").value = "'value"
sheet.cell("C1").set_explicit_value("'value", 's')
outpath = r"d:\dmishin\temp\wb.xlsx" #put your path here
wb.save(outpath)
os.startfile(outpath)
此代码创建了一个包含 3 个单元格的工作表,并为它们添加了“值”。我希望在查看时看到没有前导引号的文本,但我看到的是:
手动编辑创建这个(注意编辑时仍然显示引用)
手动比较XLSX文件内容后,我的印象是关于引用的信息存储在单元格样式标签quotePrefix属性中。
在 openpyxl 源中,CellStyle class 有相应的布尔字段 quotePrefix。但是,我看不到手动设置此字段的方法。可能吗?
在 Excel 中,您使用单引号停止 Excel 将数字字符串转换为数字。在 openpyxl 中你不需要这样做,只需将值作为字符串分配给单元格,例如。 ws['A1'] = "4"
.
openpyxl 不支持 quotePrefix
属性。
您不能更改单元格的 quotePrefix
属性,但如果您真的 需要将 quotePrefix
设置为 True
,您可以更新具有 style_array (https://openpyxl.readthedocs.io/en/stable/api/openpyxl.styles.cell_style.html#openpyxl.styles.cell_style.StyleArray) array('i', [0, 0, 0, 0, 0, 0, 0, 0, 0])
的单元格的 _style
属性,以便第 8 个值(应对应于 quotePrefix)为 1。
这是如何使用前导单引号输入单元格值的代码示例:
from openpyxl import load_workbook
xlFilePath = "testquote.xlsx" #put your path here
wb = load_workbook(filename=xlFilePath)
ws = wb.worksheets[0]
_cell = ws.cell(1, 1)
_cell.quotePrefix = 1
_cell.value = "your_value"
wb.save(xlFilePath)
在单元格 "A1" 中,您将获得带有前导单引号的值:'your_value.
此外,查看工作簿时不显示单引号(但在编辑单元格内容时可见)。
在Excel中,单引号前缀用于指定该值是文本,不应转换为任何其他类型。 通常,单引号在查看工作簿时不显示(但在编辑单元格内容时可见)。
是否可以使用 openpyxl 将这样的值放入单元格中?我没找到办法。
这里是示例代码
import openpyxl
import os
wb = openpyxl.Workbook()
sheet = wb.get_active_sheet()
sheet.cell("A1", value="'value")
sheet.cell("B1").value = "'value"
sheet.cell("C1").set_explicit_value("'value", 's')
outpath = r"d:\dmishin\temp\wb.xlsx" #put your path here
wb.save(outpath)
os.startfile(outpath)
此代码创建了一个包含 3 个单元格的工作表,并为它们添加了“值”。我希望在查看时看到没有前导引号的文本,但我看到的是:
手动编辑创建这个(注意编辑时仍然显示引用)
手动比较XLSX文件内容后,我的印象是关于引用的信息存储在单元格样式标签quotePrefix属性中。
在 openpyxl 源中,CellStyle class 有相应的布尔字段 quotePrefix。但是,我看不到手动设置此字段的方法。可能吗?
在 Excel 中,您使用单引号停止 Excel 将数字字符串转换为数字。在 openpyxl 中你不需要这样做,只需将值作为字符串分配给单元格,例如。 ws['A1'] = "4"
.
openpyxl 不支持 quotePrefix
属性。
您不能更改单元格的 quotePrefix
属性,但如果您真的 需要将 quotePrefix
设置为 True
,您可以更新具有 style_array (https://openpyxl.readthedocs.io/en/stable/api/openpyxl.styles.cell_style.html#openpyxl.styles.cell_style.StyleArray) array('i', [0, 0, 0, 0, 0, 0, 0, 0, 0])
的单元格的 _style
属性,以便第 8 个值(应对应于 quotePrefix)为 1。
这是如何使用前导单引号输入单元格值的代码示例:
from openpyxl import load_workbook
xlFilePath = "testquote.xlsx" #put your path here
wb = load_workbook(filename=xlFilePath)
ws = wb.worksheets[0]
_cell = ws.cell(1, 1)
_cell.quotePrefix = 1
_cell.value = "your_value"
wb.save(xlFilePath)
在单元格 "A1" 中,您将获得带有前导单引号的值:'your_value.
此外,查看工作簿时不显示单引号(但在编辑单元格内容时可见)。