有誰知道打開Word文檔模板並通過C#編程填充表格的好方法嗎?在Word文檔模板中填充表格C#
2
A
回答
3
如果是我,這是什麼,我會用
2
最好的選擇(爲DOCX格式至少)是 http://docx.codeplex.com/
在下面的博客文章,你可以找到的代碼示例比較DocX,Microsoft的OOXML API和經典Office Interop庫的非常簡單的文檔操作: http://cathalscorner.blogspot.com/2010/06/cathal-why-did-you-create-docx.html
0
如果您對商業產品感興趣並使用DOCX文件格式,可以試試我們的GemBox.Document組件。
它具有自己的讀/寫引擎和簡單的內容模型,可以使用沒有安裝MS Word。
下面是一個簡單的C#代碼如何創建,將使用郵件合併功能的數據擴展表一個簡單的模板文件:
// Use the component in free mode.
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
// Define DataTable with two columns: 'Name' and 'Surname', and fill it with some data.
// You don't have to do this if you already have a DataTable instance.
var dataTable = new DataTable("People")
{
Columns =
{
new DataColumn("Name", typeof(string)),
new DataColumn("Surname", typeof(string))
},
Rows =
{
new object[] { "John", "Doe" },
new object[] { "Fred", "Nurk" },
new object[] { "Hans", "Meier" },
new object[] { "Ivan", "Horvat" }
}
};
// Create and save a template document.
// You don't have to do this if you already have a template document.
// This code is only provided as a reference how template document should look like.
var document = new DocumentModel();
document.Sections.Add(
new Section(document,
new Table(document,
new TableRow(document,
new TableCell(document,
new Paragraph(document, "Name")),
new TableCell(document,
new Paragraph(document, "Surname"))),
new TableRow(document,
new TableCell(document,
new Paragraph(document,
new Field(document, FieldType.MergeField, "RangeStart:People"),
new Field(document, FieldType.MergeField, "Name"))),
new TableCell(document,
new Paragraph(document,
new Field(document, FieldType.MergeField, "Surname"),
new Field(document, FieldType.MergeField, "RangeEnd:People")))))));
document.Save("TemplateDocument.docx", SaveOptions.DocxDefault);
// Load a template document.
document = DocumentModel.Load("TemplateDocument.docx", LoadOptions.DocxDefault);
// Mail merge template document with DataTable.
// Important: DataTable.TableName and RangeStart/RangeEnd merge field names must match.
document.MailMerge.ExecuteRange(dataTable);
// Save the mail merged document.
document.Save("Document.docx", SaveOptions.DocxDefault);
相關問題
- 1. 在Word模板中用VBA填充表格?
- 2. 在word文檔中填充表格單元格顏色的C#代碼
- 3. Word模板,填充字段,C#.NET
- 4. 使用Access VBA自動填充Word文檔:Normal.dotm模板問題
- 5. 訪問和填充Word 2007文檔模板使用C#和Microsoft.Office.Interop.Word快速部件?
- 6. 從cml中填充word文檔從xml#
- 7. 如何在ASP.NET中使用Visual Basic/Visual C#填充Word文檔
- 8. 用Mail合併填充Microsoft word文檔
- 9. 如何在bash中填充文檔模板
- 10. 在多個Word模板中更改文檔模板路徑
- 11. 在模板中呈現填充表單
- 12. 使用C#/ Java/Visual Basic來填充Word 2007模板
- 13. 在網格模板列中填充DropDownList列表
- 14. 在django模板中使用knockout.js填充表格
- 15. 在LaTeX中使用C填充表格#
- 16. 在asp.net中填寫word文檔?
- 17. 文檔模板:用JavaScript代替Word?
- 18. Word 2003模板 - 文檔保存
- 19. .net模板引擎生成word文檔
- 20. 從模板構建Word文檔
- 21. 使用模板生成Word文檔
- 22. 從模板Word文檔生成PDF
- 23. C#在word文檔中動態添加行到表格
- 24. c#如何在word文檔的頁腳中獲取表格
- 25. 在Word文檔中編輯Excel電子表格對象(C#Interop)
- 26. 在顯示執行的Word文檔時隱藏模板Word文檔?
- 27. 從SharePoint自定義列表的列表字段中自動填充Word模板?
- 28. 在Word文檔中嵌入Word文檔
- 29. 從列表中填充表格C#asp.net
- 30. 從excel vba中心表格Word文檔
在模板文件我已經預先製作的表,我不知道docx有填充預製表的功能。 – user1261700 2012-03-11 06:39:51
絕對,當您使用DocX.Load函數讀取現有文檔時,生成的文檔對象具有可用於處理單元格中的數據的Tables列表。更多信息(這是爲了創建表格,但它顯示了我正在談論的對象)http://cathalscorner.blogspot.com/2010/06/docx-and-tables.html – Dirk 2012-03-11 21:44:35