国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net下用Aspose.Words for .NET動態(tài)生成word文檔中的數(shù)據(jù)表格的方法

2024-07-10 13:26:13
字體:
供稿:網(wǎng)友
1、概述

  

2、正文

代碼如下:


string tmppath = Server.MapPath("~/template.doc");
Document doc = new Document(tmppath); //載入模板
if (doc.Range.Bookmarks["name"] != null)
{
Bookmark mark = doc.Range.Bookmarks["name"];
mark.Text = "張三公司";
}
doc.Save("demo.doc", SaveFormat.Doc, SaveType.OpenInWord, Response); //保存為doc,并打開


是不是很簡單?好了,下面我們來看看文章開頭所講的如何動態(tài)生成word表格。

Aspose.Words對word文檔對象中的操作。在生成表格上有點類似二維數(shù)組。還記得需求說的“表格列數(shù)由用戶控制嗎”,所以我們要在模板上定義一個含有表頭的表格,這里要畫出您數(shù)據(jù)表中可以顯示的所有列頭,這樣做主要是考慮到用戶可以自己去減少不需要顯示列頭。這里要注意,書簽和列頭文字的順序不能顛倒,大家看下面代碼就知道了。如下圖:

灰色的部分就是bookmark了。Aspose.Words生成表格的原理就如同一個二維數(shù)組,也就是一個個單元格的去生成。我們來看看代碼部分是如何實現(xiàn)的:

復(fù)制代碼 代碼如下:


DocumentBuilder builder = new DocumentBuilder(doc);
DataTable products = this.GetData(); //數(shù)據(jù)源
int count = 0;
//記錄要顯示多少列
for (var i = 0; i < products.Columns.Count; i++)
{
if (doc.Range.Bookmarks[products.Columns[i].ColumnName.Trim()] != null)
{
Bookmark mark = doc.Range.Bookmarks[products.Columns[i].ColumnName.Trim()];
mark.Text = "";
count++;
}
}
System.Collections.Generic.List<string> listcolumn = new System.Collections.Generic.List<string>(count);
for (var i = 0; i < count; i++)
{
builder.MoveToCell(0, 0, i, 0); //移動單元格
if (builder.CurrentNode.NodeType == NodeType.BookmarkStart)
{
listcolumn.Add((builder.CurrentNode as BookmarkStart).Name);
}
}
double width = builder.CellFormat.Width;//獲取單元格寬度
builder.MoveToBookmark("table"); //開始添加值
for (var m = 0; m < products.Rows.Count; m++)
{
for (var i = 0; i < listcolumn.Count; i++)
{
builder.InsertCell(); // 添加一個單元格
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
builder.CellFormat.Width = width;
builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None;
builder.Write(products.Rows[m][listcolumn[i]].ToString());
}
builder.EndRow();
}
doc.Range.Bookmarks["table"].Text = ""; // 清掉標(biāo)示
doc.Save("baojiadan.doc", SaveFormat.Doc, SaveType.OpenInWord, page.Response);



我們來看看最后生成的效果:

asp.net下用Aspose.Words for .NET動態(tài)生成word文檔中的數(shù)據(jù)表格的方法


到這里我們這一部分的功能就已經(jīng)全部完成了。

也許這種方法并不是最好,如果朋友們有興趣不妨研究研究,大家一起交流下。

附:Aspose.Words for NET 6.5 破解版下載地址

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 榆树市| 大厂| 汉寿县| 台山市| 阿拉善右旗| 彭阳县| 南康市| 蓝山县| 卢龙县| 南雄市| 玛曲县| 油尖旺区| 铜鼓县| 电白县| 赞皇县| 彩票| 凭祥市| 桃源县| 宁阳县| 津南区| 汝南县| 邢台市| 宝坻区| 任丘市| 阿巴嘎旗| 孝感市| 成武县| 双柏县| 秀山| 阿勒泰市| 临汾市| 彰武县| 卓资县| 太白县| 陆丰市| 黑龙江省| 沅陵县| 孟村| 晋城| 无棣县| 根河市|