public void ExportToWord(int iRecordID)
{
DataTable dtResult = dbo.Query("usp_get_Entity_FPBKSQ " + iRecordID + ",0");
//取得报表模板文件路径
string wordTemplatePath = HttpContext.Current.Server.MapPath("..//..//..//Instance//Plugin//Biz//template/bfjzsq.doc");
//导出报表文件名
string fileName = "西北化工销售公司困难人员帮扶救助申请表.doc";
//导出文件路径
string outPutFilePath = HttpContext.Current.Server.MapPath("..//..//..//Instance//Plugin//Biz//template//Temp/" + fileName);
//创建word对象
Aspose.Words.Document doc = null;
doc = new Aspose.Words.Document(wordTemplatePath);//打开word
Aspose.Words.DocumentBuilder docBuild = new Aspose.Words.DocumentBuilder(doc);
//获取table
Aspose.Words.Tables.Table table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, 0, true);
foreach (Aspose.Words.Bookmark mark in doc.Range.Bookmarks)
{
if (mark.Name == "姓名")
mark.Text = dtResult.Rows[0]["Name"].ToString();
else if (mark.Name == "性别")
mark.Text = dtResult.Rows[0]["xb"].ToString();
else if (mark.Name == "年龄")
mark.Text = dtResult.Rows[0]["nl"].ToString();
else if (mark.Name == "联系电话")
mark.Text = dtResult.Rows[0]["LXDH"].ToString();
else if (mark.Name == "政治面貌")
mark.Text = dtResult.Rows[0]["zzmm"].ToString();
else if (mark.Name == "婚姻状况")
mark.Text = dtResult.Rows[0]["HYZK"].ToString();
else if (mark.Name == "家庭详细住址")
mark.Text = dtResult.Rows[0]["JTDZ"].ToString();
else if (mark.Name == "本人月收入")
mark.Text = dtResult.Rows[0]["YSR"].ToString();
else if (mark.Name == "家庭人口数")
mark.Text = dtResult.Rows[0]["ZRS"].ToString();
else if (mark.Name == "月总收入")
mark.Text = dtResult.Rows[0]["YZSR"].ToString();
else if (mark.Name == "月人均生活费")
mark.Text = dtResult.Rows[0]["YRJSHF"].ToString();
else if (mark.Name == "人员类别")
mark.Text = dtResult.Rows[0]["RYLB"].ToString();
else if (mark.Name == "二级单位审核意见")
mark.Text = dtResult.Rows[0]["EJDWSHYJ"].ToString();
else if (mark.Name == "公司工会审核意见")
mark.Text = dtResult.Rows[0]["GSGHSHYJ"].ToString();
else if (mark.Name == "配偶姓名")
mark.Text = dtResult.Rows[0]["PONAME"].ToString();
else if (mark.Name == "工作单位")
mark.Text = dtResult.Rows[0]["POGZDW"].ToString();
else if (mark.Name == "月收入")
mark.Text = dtResult.Rows[0]["POYSR"].ToString();
else if (mark.Name == "身份")
mark.Text = dtResult.Rows[0]["sf"].ToString();
else if (mark.Name == "所属单位")
mark.Text = dtResult.Rows[0]["OrgName"].ToString();
else if (mark.Name == "困难原因")
mark.Text = dtResult.Rows[0]["KNYY"].ToString();
else if (mark.Name == "救助类型")
mark.Text = dtResult.Rows[0]["JZLX"].ToString();
else if (mark.Name == "身份证号")
mark.Text = dtResult.Rows[0]["SFZH"].ToString();
}
using (DataTable dt = dbo.Query("usp_get_Entity_FPBKSQ " + iRecordID + ",1"))
{
int i = 4;//第4行内容,被复制用
if (dt.Rows.Count > 0)
{
//设置单元格属性,合并单元格
table.Rows[4].Cells[0].CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
for (int j = 0; j < dt.Rows.Count - 1 ; j++)
{
Aspose.Words.Tables.Row beforeRow = table.Rows[i++];
Aspose.Words.Tables.Row clonedRow = (Aspose.Words.Tables.Row)beforeRow.Clone(true);
table.InsertAfter(clonedRow, beforeRow);//插入到指定位置下面
DataRow dr = dt.Rows[j];
//修改上行内容
docBuild.MoveToCell(0,i-1,1,0);
docBuild.Write(dr["KIDNAME"].ToString());
docBuild.MoveToCell(0, i - 1, 3, 0);
docBuild.Write(dr["xb"].ToString());
docBuild.MoveToCell(0, i - 1, 5, 0);
docBuild.Write(dr["nl"].ToString());
docBuild.MoveToCell(0, i - 1, 7, 0);
docBuild.Write(dr["xz"].ToString());
//设置合并内容
docBuild.MoveToCell(0,i,0,0);
docBuild.CellFormat.WrapText = true;
//合并单元格
clonedRow.Cells[0].CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
}
docBuild.MoveToCell(0,i,1,0);
docBuild.Write(dt.Rows[dt.Rows.Count - 1]["KIDNAME"].ToString());
docBuild.MoveToCell(0, i, 3, 0);
docBuild.Write(dt.Rows[dt.Rows.Count - 1]["xb"].ToString());
docBuild.MoveToCell(0, i, 5, 0);
docBuild.Write(dt.Rows[dt.Rows.Count - 1]["nl"].ToString());
docBuild.MoveToCell(0, i, 7, 0);
docBuild.Write(dt.Rows[dt.Rows.Count - 1]["xz"].ToString());
}
}
doc.Save(outPutFilePath ,Aspose.Words.SaveFormat.Doc);
string path = outPutFilePath;
System.IO.FileInfo file = new System.IO.FileInfo(path);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Charset = "GB2312";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename = " + HttpContext.Current.Server.UrlEncode(fileName));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
HttpContext.Current.Response.ContentType = "application/ms-word";
// 把文件流发送到客户端
HttpContext.Current.Response.WriteFile(file.FullName);
// 停止页面的执行
System.IO.DirectoryInfo pathFolder = new System.IO.DirectoryInfo(HttpContext.Current.Server.MapPath("..//Biz//template//Temp"));
HttpContext.Current.Response.End();
//Response.Write(" <script> window.close(); </script> ");
}
{
DataTable dtResult = dbo.Query("usp_get_Entity_FPBKSQ " + iRecordID + ",0");
//取得报表模板文件路径
string wordTemplatePath = HttpContext.Current.Server.MapPath("..//..//..//Instance//Plugin//Biz//template/bfjzsq.doc");
//导出报表文件名
string fileName = "西北化工销售公司困难人员帮扶救助申请表.doc";
//导出文件路径
string outPutFilePath = HttpContext.Current.Server.MapPath("..//..//..//Instance//Plugin//Biz//template//Temp/" + fileName);
//创建word对象
Aspose.Words.Document doc = null;
doc = new Aspose.Words.Document(wordTemplatePath);//打开word
Aspose.Words.DocumentBuilder docBuild = new Aspose.Words.DocumentBuilder(doc);
//获取table
Aspose.Words.Tables.Table table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, 0, true);
foreach (Aspose.Words.Bookmark mark in doc.Range.Bookmarks)
{
if (mark.Name == "姓名")
mark.Text = dtResult.Rows[0]["Name"].ToString();
else if (mark.Name == "性别")
mark.Text = dtResult.Rows[0]["xb"].ToString();
else if (mark.Name == "年龄")
mark.Text = dtResult.Rows[0]["nl"].ToString();
else if (mark.Name == "联系电话")
mark.Text = dtResult.Rows[0]["LXDH"].ToString();
else if (mark.Name == "政治面貌")
mark.Text = dtResult.Rows[0]["zzmm"].ToString();
else if (mark.Name == "婚姻状况")
mark.Text = dtResult.Rows[0]["HYZK"].ToString();
else if (mark.Name == "家庭详细住址")
mark.Text = dtResult.Rows[0]["JTDZ"].ToString();
else if (mark.Name == "本人月收入")
mark.Text = dtResult.Rows[0]["YSR"].ToString();
else if (mark.Name == "家庭人口数")
mark.Text = dtResult.Rows[0]["ZRS"].ToString();
else if (mark.Name == "月总收入")
mark.Text = dtResult.Rows[0]["YZSR"].ToString();
else if (mark.Name == "月人均生活费")
mark.Text = dtResult.Rows[0]["YRJSHF"].ToString();
else if (mark.Name == "人员类别")
mark.Text = dtResult.Rows[0]["RYLB"].ToString();
else if (mark.Name == "二级单位审核意见")
mark.Text = dtResult.Rows[0]["EJDWSHYJ"].ToString();
else if (mark.Name == "公司工会审核意见")
mark.Text = dtResult.Rows[0]["GSGHSHYJ"].ToString();
else if (mark.Name == "配偶姓名")
mark.Text = dtResult.Rows[0]["PONAME"].ToString();
else if (mark.Name == "工作单位")
mark.Text = dtResult.Rows[0]["POGZDW"].ToString();
else if (mark.Name == "月收入")
mark.Text = dtResult.Rows[0]["POYSR"].ToString();
else if (mark.Name == "身份")
mark.Text = dtResult.Rows[0]["sf"].ToString();
else if (mark.Name == "所属单位")
mark.Text = dtResult.Rows[0]["OrgName"].ToString();
else if (mark.Name == "困难原因")
mark.Text = dtResult.Rows[0]["KNYY"].ToString();
else if (mark.Name == "救助类型")
mark.Text = dtResult.Rows[0]["JZLX"].ToString();
else if (mark.Name == "身份证号")
mark.Text = dtResult.Rows[0]["SFZH"].ToString();
}
using (DataTable dt = dbo.Query("usp_get_Entity_FPBKSQ " + iRecordID + ",1"))
{
int i = 4;//第4行内容,被复制用
if (dt.Rows.Count > 0)
{
//设置单元格属性,合并单元格
table.Rows[4].Cells[0].CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;
for (int j = 0; j < dt.Rows.Count - 1 ; j++)
{
Aspose.Words.Tables.Row beforeRow = table.Rows[i++];
Aspose.Words.Tables.Row clonedRow = (Aspose.Words.Tables.Row)beforeRow.Clone(true);
table.InsertAfter(clonedRow, beforeRow);//插入到指定位置下面
DataRow dr = dt.Rows[j];
//修改上行内容
docBuild.MoveToCell(0,i-1,1,0);
docBuild.Write(dr["KIDNAME"].ToString());
docBuild.MoveToCell(0, i - 1, 3, 0);
docBuild.Write(dr["xb"].ToString());
docBuild.MoveToCell(0, i - 1, 5, 0);
docBuild.Write(dr["nl"].ToString());
docBuild.MoveToCell(0, i - 1, 7, 0);
docBuild.Write(dr["xz"].ToString());
//设置合并内容
docBuild.MoveToCell(0,i,0,0);
docBuild.CellFormat.WrapText = true;
//合并单元格
clonedRow.Cells[0].CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;
}
docBuild.MoveToCell(0,i,1,0);
docBuild.Write(dt.Rows[dt.Rows.Count - 1]["KIDNAME"].ToString());
docBuild.MoveToCell(0, i, 3, 0);
docBuild.Write(dt.Rows[dt.Rows.Count - 1]["xb"].ToString());
docBuild.MoveToCell(0, i, 5, 0);
docBuild.Write(dt.Rows[dt.Rows.Count - 1]["nl"].ToString());
docBuild.MoveToCell(0, i, 7, 0);
docBuild.Write(dt.Rows[dt.Rows.Count - 1]["xz"].ToString());
}
}
doc.Save(outPutFilePath ,Aspose.Words.SaveFormat.Doc);
string path = outPutFilePath;
System.IO.FileInfo file = new System.IO.FileInfo(path);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Charset = "GB2312";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename = " + HttpContext.Current.Server.UrlEncode(fileName));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
HttpContext.Current.Response.ContentType = "application/ms-word";
// 把文件流发送到客户端
HttpContext.Current.Response.WriteFile(file.FullName);
// 停止页面的执行
System.IO.DirectoryInfo pathFolder = new System.IO.DirectoryInfo(HttpContext.Current.Server.MapPath("..//Biz//template//Temp"));
HttpContext.Current.Response.End();
//Response.Write(" <script> window.close(); </script> ");
}