DocX的背景介绍

DocX的背景

DocX (截图)的开发开始于2003年,最初叫Conv-X,是一个实验项目。它的终极目标是进行任意两种文件格式的转换。最初甚至没有打算出任何产品。出现DocX是一种偶然中的巧合。

Conv-X的意图是,把任意的一种文档格式(包括文本的,或者是二进制的),通过某种语法,把该文档的格式描述出来。然后,Conv-X解释这种文档格式的描述文法(我称之为输入脚本),把文档读入到内存,并以xml的dom树存在。然后,再通过xslt转换(所以xsl文件我称之为输出脚本),把这个xml转换为任意的一种输出格式。

再来看DocX,你可以发现整个过程是相当复杂的。以从C++的.h文件提取为例,整个过程是: .h => .xml => .htm => .chm

现在你可以明白我说的实验是指什么。我试图想获得的是一种可以描述任意文档格式的脚本文法。这种脚本文法最终是通过一个名为tpl的库去解释。这是整个项目的重点。

目前来看这个项目,Conv-X取得了一定的成果。但是与我最初的期望相去甚远。我自我感觉认为,它没有满足我规划中的10%功能。

winx我虽然称之为界面库,那是因为,gui是它的重点。但它不是winx的唯一。现在winx包含三个子库:stdext(基础库)、winx(界面库)、tpl(Text Processing Lib - 文本处理库)。其中我们通常说的winx是指:stdext/stl + winx+ wtl/atl。tpl库作为可选组件,则不直接纳入。

tpl库成为winx库中的一个子库,但是又是可选的,这是出于什么考虑?原因是,tpl极有可能成为winx的另一个组件——winx的可视化开发工具所采用。为什么?因为,可视化开发工具,首先需要分析用户的源代码,确定自己需要把代码安插在何处。也许我可以调用vs2005的class view想关的api(我没有去细究),这是一个捷径,但是使得winx可视化开发工具移植到其他平台变得不可能。

因此,既然有winx的可视化开发工具,tpl就是winx项目必需的组件。当然,DocX是它的另一个客户。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要设置 python-docx 表格的背景色,可以使用 `table.style` 属性来设置表格的样式,然后使用 `TableStyle` 对象来设置背景色。具体步骤如下: 1. 导入必要的模块: ```python from docx import Document from docx.shared import RGBColor from docx.oxml.ns import qn from docx.oxml import OxmlElement from docx.enum.table import WD_TABLE_ALIGNMENT from docx.enum.text import WD_ALIGN_PARAGRAPH ``` 2. 创建文档对象和表格对象: ```python document = Document() table = document.add_table(rows=3, cols=3) ``` 3. 设置表格样式: ```python table.style = 'Table Grid' ``` 4. 定义一个函数来设置表格背景色: ```python def set_cell_background_color(cell, color): """设置表格单元格背景色""" cell._element.clear_content() tcPr = OxmlElement('w:tcPr') cell._element.append(tcPr) tcW = OxmlElement('w:tcW') tcW.set(qn('w:w'), '0') tcW.set(qn('w:type'), 'auto') tcPr.append(tcW) shd = OxmlElement('w:shd') shd.set(qn('w:fill'), color) shd.set(qn('w:val'), 'clear') tcPr.append(shd) ``` 5. 使用上面定义的函数设置单元格背景色: ```python set_cell_background_color(table.cell(0, 0), RGBColor(255, 0, 0)) # 设置第一行第一列单元格背景色为红色 set_cell_background_color(table.cell(1, 1), RGBColor(0, 255, 0)) # 设置第二行第二列单元格背景色为绿色 set_cell_background_color(table.cell(2, 2), RGBColor(0, 0, 255)) # 设置第三行第三列单元格背景色为蓝色 ``` 6. 最后保存文档: ```python document.save('table.docx') ``` 注意:上面定义的 `set_cell_background_color()` 函数中的 `cell._element.clear_content()` 表示清空单元格原有的内容,如果需要保留原有内容,请删除此行代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值