3

我必须从 Python 创建格式良好的 Excel 电子表格。我想过这样做:

  1. 我从 Excel 开始,因为它很容易格式化:我用 Excel 编写我想要的模型,格式很好
  2. 我从 Python 中读到了这个
  3. 我从 Python 创建了一个格式相同的 Excel 电子表格

最后,目的是从 Python Excel 电子表格创建,但是用 xlwt 格式化需要很多时间,所以我想到了先在 Excel 中格式化来帮忙。

我已经研究了执行此操作的简单方法,但没有找到任何方法。我可以坚持我目前的工作解决方案,在 Python 中使用 xlwt 创建格式化的 Excel,但使用起来很尴尬。

感谢您的任何回复

4

2 回答 2

4

感谢您的回复。我在使用 python 的 xlrd、xlwt 和 xlutils.copy 保留样式中找到了我正在搜索的内容。代码如下。

import xlrd 
import xlutils.copy 

inBook = xlrd.open_workbook('input.xls', formatting_info=True) 
outBook = xlutils.copy.copy(inBook) 

def _getOutCell(outSheet, colIndex, rowIndex): 
    """ HACK: Extract the internal xlwt cell representation. """ 
    row = outSheet._Worksheet__rows.get(rowIndex) 
    if not row: return None 
    cell = row._Row__cells.get(colIndex) 
    return cell 

def setOutCell(outSheet, col, row, value): 
    """ Change cell value without changing formatting. """ 
    # HACK to retain cell style. 
    previousCell = _getOutCell(outSheet, col, row) 
    # END HACK, PART I 
    outSheet.write(row, col, value) 
    # HACK, PART II 
    if previousCell: 
        newCell = _getOutCell(outSheet, col, row) 
    if newCell: 
        newCell.xf_idx = previousCell.xf_idx 
    # END HACK 


outSheet = outBook.get_sheet(0) 
setOutCell(outSheet, 5, 5, 'Test') 
outBook.save('output.xls') 
于 2012-04-13T06:46:51.677 回答
0

你说:

使用 xlwt 格式化需要很多时间

使用起来很尴尬

也许你没有使用easyxf?如果是这样,请查看您可以通过 访问的教程www.python-excel.org,并查看examples/xlwt_easyxf_simple_demo.py您的 xlwt 安装。

于 2012-04-03T21:23:14.953 回答