我尝试使用openpyxl生成一个speadsheet,它包含以下格式的数据。所有单元格都应该按照给定的宽度进行包装。在
+-----------+-------------------+-----+
| Long text | More Long text h..| num |
| Here.... +-------------------+-----+
| | More Long text h..| num |
+-----------+-------------------+-----+
问题是行高是固定的,文本被截断了。在
openpyxl似乎没有自动行高功能,所以我必须计算给定字体和宽度的高度或行数。在
我到处找过能做到这一点但运气不佳的包裹。任何解决这个问题的想法或方法都将不胜感激,谢谢!在
编辑:
^{pr2}$在发布这个问题之前,我试着和tkinter玩了一下,但结果并不完全是我想要的
from tkinter import Tk, BOTH, Y, END, Text, font as f
root = Tk()
font = f.Font(family="Calibri", size=11)
line_height = font.metrics("linespace")
T = Text(root, width=30, font=font)
T.pack(fill=BOTH, expand=Y)
T.insert(END, "THIS IS A VERY VERY VERY VERY VERY VERY VERY LONG TEXT")
num_lines = int(T.index('end-1c').split('.')[0])
不幸的是,openpyxl可以应用的格式比您希望的要少。尤其是行高和列宽完全取决于读取应用程序,并依赖于操作系统等。在
此外,openpyxl遵循规范而不是Excel,因此,例如,对行或列维度应用样式是Excel格式化不存在的单元格的指令。规范不包含任何关于合并单元格应如何格式化的信息。一年前提交了一个bug报告,但我们仍在等待澄清。在
为了获得最佳效果,您应该准备分析现有工作表并从中重新创建样式。注意。由于使用了OOXML格式的指针,这有点棘手。在
相关问题 更多 >
编程相关推荐