python - 使用openpyxl从Excel获取列宽

标签 python excel python-3.x openpyxl

我需要从 Excel 获取列宽并将其写入 .txt 文件。我相信 openpyxl 是这样做的方法,但我无法让 openpyxl.worksheet.dimensions.ColumnDimension.width 返回值。这是正确的方法吗?

最佳答案

  • 这是另一种方法,它将 Excel 实例化为对象。
  • 这仅适用于 Windows,并且必须安装 Excel。

给定:

enter image description here

代码:

import win32com.client as win32

filename = 'D:/PythonProjects/stack_overflow/test.xlsx'

excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = False  # can be True if you like

wb = excel.Workbooks.Open(filename)
ws1 = wb.Sheets('Sheet1')

for x in range(1, ws1.UsedRange.Columns.Count +1):
    print(ws1.Columns(x).ColumnWidth)

wb.Close(True)

输出:

8.43
8.43
8.43
8.43
8.43
39.43
  • ws1.UsedRange.Columns.Count 返回已用列数的 int,在 Excel 屏幕截图中 A:F == 1:6
  • ws1.Columns(x).ColumnWidth 返回列宽
  • 顺便说一句,使用此方法与 Excel 交互会公开所有 Excel 功能,从而允许与新文件或现有文件、图形、格式设置等进行交互。
    • 如果excel.Visible = True,则可以在观看时对实时文件进行操作;只是不要与 Excel 交互,而 python 正在处理它。

关于python - 使用openpyxl从Excel获取列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57862438/

相关文章:

python - 500 多个单元格引用和 120 个工作簿

excel - 有没有办法在单个单元格中使用下划线、粗体和斜体?

Python Tkinter Text-Widget 滚动到特定行

python - 导入错误 : No module named parse

python - 如何将 NSDictionary 发布到 Django 服务器

python - 本例中使用 "yield"的正确方法

excel - 有些日期被识别为日期,有些日期未被识别。为什么?

python-3.x - 创建字段以接受鼠标绘图并将其转换为图像

python - 如何使用列表替换文本文件中的列?

python - 有没有办法在 Python 中获取对象的当前引用计数?