openXML向Word插入表
表是 Word 中的另一类型的块级内容,它是以行和列排列的一组段落(以及其他块级内容)。
Word 中的表格通过 tbl 元素定义,该元素类似于 HTML <表格>标记。 表元素指定文档中存在的表的位置。
tbl 元素具有两个定义其属性的元素:tblPr 和 tblGrid,前者定义表范围的一组属性(如样式和宽度),后者定义表的网格布局。tbl 元素还可包含任意(非零)数目的行,其中每行使用 tr 元素来指定。每个 tr 元素可包含任意非零个单元格,其中每个单元格使用 tc 元素来指定。
下表列出使用表时使用的一些最常见的 Open XML SDK 类。
| XML 元素 | Open XML SDK 类 |
|---|---|
| 内容单元格 | 内容单元格 |
| gridCol | GridColumn |
| tblGrid | TableGrid |
| tblPr | TableProperties |
| tc | TableCell |
| tr | TableRow |
Table 类
Open XML SDK Table 类代表 (<tbl>),该元素在 Word文档的 Open XML 文件格式架构中定义,如上所述。 使用 Table 对象可以处理 Word 文档中的单个表。
TableProperties 类
Open XML SDK TableProperties 类代表 (<tblPr>) 元素,该元素在 Word文档的 Open XML 文件格式架构中定义。 <tblPr> 元素定义表的表范围属性。 使用 TableProperties 对象可为 Word 文档中的表设置表范围属性。
TableGrid 类
Open XML SDK TableGrid 类代表 (<tblGrid>) 元素,该元素在 Word文档的 Open XML 文件格式架构中定义。 与网格列 (<gridCol>) 子元素一起使用时,<tblGrid> 元素定义表的列并指定列中表格单元格的默认宽度。 使用 TableGrid 对象可以定义 Word 文档的表中的列。
GridColumn 类
Open XML SDK GridColumn 类代表网格列 (<gridCol>) 元素,该元素在 Word文档的 Open XML 文件格式架构中定义。 <gridCol> 元素是 <tblGrid> 元素的一个子元素,并在 Word 文档中的表中定义的单个列。 使用 GridColumn 类可以处理 Word 文档中的单个列。
TableRow 类
Open XML SDK TableRow 类代表表格行 (<tr>) 元素,该元素在 Word文档的 Open XML 文件格式架构中定义。 <tr> 元素在 Word 文档的表中定义一行,类似于 HTML 中的 <tr> 标记。 使用表格行属性 (<trPr>) 元素,还可对表格行应用格式。 Open XML SDK TableRowProperties 类表示 <trPr> 元素。
TableCell 类
Open XML SDK TableCell 类代表表格单元格 (<tr>) 元素,该元素在 Word 文档的 Open XML 文件格式架构中定义。 <tc> 元素在 Word文档的表中定义一个单元格,类似于 HTML 中的 <td> 标记。 使用表格单元格属性 (<tcPr>) 元素,还可对表格单元格应用格式。 Open XML SDK TableCellProperties 类表示 <tcPr> 元素。
Open XML SDK 代码示例
下面的代码可在文档中插入具有 10 行和 10 列的表。
public static void InsertTableInDoc(string filepath)
{
using (pkg.WordprocessingDocument doc = pkg.WordprocessingDocument.Open(filepath, true))
{
Word.Body body = doc.MainDocumentPart.Document.Body; Word.Table tbl = new Word.Table(); Word.TableProperties tableProp = new Word.TableProperties(); //设置表样式
Word.TableStyle tableStyle = new Word.TableStyle() { Val = "" }; Word.TableWidth tableWidth = new Word.TableWidth() { Width = "", Type = Word.TableWidthUnitValues.Pct }; tableProp.Append(tableStyle, tableWidth);
tbl.AppendChild(tableProp); Word.TableGrid tg = new Word.TableGrid(new Word.GridColumn(), new Word.GridColumn(), new Word.GridColumn()); tbl.AppendChild(tg); Word.TableRow tr1 = null; for(int r = ; r <= ; r++)
{
tr1 = new Word.TableRow();
for (int c = ; c <= ; c++)
{
tr1.Append(new Word.TableCell(new Word.Paragraph(new Word.Run(new Word.Text((c*r).ToString())))));
}
tbl.AppendChild(tr1);
} // Word.TableCell tc1 = new Word.TableCell(new Word.Paragraph(new Word.Run(new Word.Text("1")))); body.AppendChild(tbl); doc.Close();
doc.Dispose();
}
openXML向Word插入表的更多相关文章
- 2、word插入目录、图/表
一.word插入目录 依次对每个标题在“段落”中进行大纲级别选择. 光标定位于目录生成的页面,再“引用”->“目录”->选择“自动目录1/2”,则可自动生成目录.若目录有所更改,则可选择“ ...
- OpenXML操作word
OpenXML概述 项目中经常需要操作word,之前的方式是采用COM接口,这个接口很不稳定,经常报错.现在开始采用OpenXML.OpenXML(OOXML)是微软在Office 2007中提出的一 ...
- OpenXml操作Word的一些操作总结.无word组件生成word.
OpenXml相对于用MS提供的COM组件来生成WORD,有如下优势: 1.相对于MS 的COM组件,因为版本带来的不兼容问题,及各种会生成WORD半途会崩溃的问题. 2.对比填满一张30多页的WOR ...
- OpenXml操作Word的一些操作总结. - 天天不在
OpenXml相对于用MS提供的COM组件来生成WORD,有如下优势: 1.相对于MS 的COM组件,因为版本带来的不兼容问题,及各种会生成WORD半途会崩溃的问题. 2.对比填满一张30多页的WOR ...
- OpenXml操作Word的一些操作总结.
OpenXml操作Word的一些操作总结. OpenXml相对于用MS提供的COM组件来生成WORD,有如下优势: 1.相对于MS 的COM组件,因为版本带来的不兼容问题,及各种会生成WORD半途会崩 ...
- OpenXml操作Word的一些操作总结.无word组件生成word.(转)
http://www.cnblogs.com/zhouxin/p/3174936.html OpenXml相对于用MS提供的COM组件来生成WORD,有如下优势: 1.相对于MS 的COM组件,因为版 ...
- 存储过程:当基站ID大于1000的时候,把ID通过存储过程插入表,然后处理
不推荐这么弄,没办法,项目逼到这了,以后尽量避免这样的需求发生! CREATE OR REPLACE PROCEDURE insert_tempStation_proc(v_instr in clob ...
- SQL语句-批量插入表(表数据插表)
批量插入表(表数据插表) ****1.INSERT INTO SELECT语句语句形式为:Insert into Table2(field1,field2,...) select value1,val ...
- mssql字符串分割后的值,把表中不存在的插入表中
字符串分割后的值,把表中不存在的插入表中 --供大家参考 使用场景,自行思考…… --创建表tb1 Create table tb1 ( cola int, colb ) ) --插入数据 inser ...
随机推荐
- python的车牌号的检测
自己总结一下,从网上找到的关于车牌号的识别的一些博文.https://www.jianshu.com/p/fcfbd3131b84 https://www.cnblogs.com/do-hardwor ...
- program_options
[program_options] The program_options library allows program developers to obtain program options, t ...
- cdnbest常见问题
1.cdn配置了ssl证书,经常有用户说访问不了,如果cdn配置了ssl,源没有配置ssl,在cdn里添加源ip的写法: 如果源也配置了ssl证书,写法如下图: 2. cdn报504问题的原因: 50 ...
- 解题(GoUpstairs -- 上楼梯)
题目描述 有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶.2阶.3阶.请实现一个方法,计算小孩有多少种上楼的方式.为了防止溢出,请将结果Mod 1000000007 给定一个正整数int n, ...
- 解决SpringMVC拦截器中Request数据只能读取一次的问题
解决SpringMVC拦截器中Request数据只能读取一次的问题 开发项目中,经常会直接在request中取数据,如Json数据,也经常用到@RequestBody注解,也可以直接通过request ...
- 如何在 Koa 中获取 client 的 ip 以及 port
ctx.body.remoteAddress ctx.body.remotePort
- 100-days: twenty-eight
Title: Lawrence Ferlinghetti's(劳伦斯·费林盖蒂) enduring San Francisco(旧金山) 劳伦斯·费林盖蒂心中的旧金山,历久弥新 费林盖蒂:美国垮掉的一 ...
- sql yog出现2013错误
首先用telnet检查一下你的防火墙端口,如果连接失败,配置防火墙. 配置防火墙,开启3306端口 find -name iptables vim /etc/sysconfig/iptables -A ...
- gcc8.2安装__(沒有成功)
重要:https://gcc.gnu.org/install/prerequisites.html 官方安装所需要的工具文档 还有就是这篇文章 http://blog.51cto.com/2716 ...
- 递归求6的阶乘(考虑int类型溢出)
编码 public class Factorial { public static void main(String[] args) { System.out.println(fac(6)); } p ...