c#(.net) 导出 word表格
做了差不多一周的导出Word,现在把代码贴出来 :
ExportWord.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.IO; /// <summary>
///DaoChuWord 的摘要说明
/// </summary>
public class ExportWord
{
public ExportWord()
{
//
//TODO: 在此处添加构造函数逻辑
//
} public DataTable dat = null;
public void ProcessRequest(HttpContext context, string id,string name)
{
context.Response.ContentType = "text/plain";
GetDataTable(id);
CreateWord(name);
//此处为了批量操作,把下面这个注掉
//context.Response.End(); } DataTable GetDataTable(string id)
{
string sql = " select * from hr_person where id =" + id;
dat = ZWL.DBUtility.MyDBHelp.GetDataTable(sql);
if (dat != null)
{
return dat;
}
throw new NoNullAllowedException();
} public string CreateWord(string name)
{
string uid = dat.Rows[]["id"].ToString();
string message = ""; Object Nothing = System.Reflection.Missing.Value; object filename = name; //文件保存路径
//创建Word文档
Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.ApplicationClass(); Microsoft.Office.Interop.Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
WordApp.Selection.PageSetup.LeftMargin = 50f;
WordApp.Selection.PageSetup.RightMargin = 50f;
WordApp.Selection.PageSetup.PageWidth = 650f; //页面宽度 WordDoc.ActiveWindow.Selection.Font.Bold = ; WordApp.Selection.ParagraphFormat.LineSpacing = 13f;//设置文档的行间距
//移动焦点并换行
object count = ;
object WdLine = Microsoft.Office.Interop.Word.WdUnits.wdLine;//换一行;
WordApp.Selection.ParagraphFormat.LineSpacing = 18f; WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移动焦点
WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
WordApp.Selection.TypeParagraph();//插入段落
WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
WordApp.Selection.Font.Size = 18f; object missing = System.Reflection.Missing.Value;
object count2 = ;
object WdLine2 = Microsoft.Office.Interop.Word.WdUnits.wdLine;//换一行;
WordApp.Selection.Text = "应 聘 报 名 表";
WordApp.Selection.ParagraphFormat.LineSpacingRule = Microsoft.Office.Interop.Word.WdLineSpacing.wdLineSpaceSingle;//单倍行距 WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移动焦点
WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
WordApp.Selection.TypeParagraph();//插入段落 WordApp.Selection.Font.Size = 10.5f;
WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
WordApp.Selection.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorBlack; //文档中创建表格
Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, , , ref Nothing, ref Nothing);
//设置表格样式
WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中 //设置表格框
newTable.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
newTable.Columns[].Width = 25f;
newTable.Columns[].Width = 30f;
newTable.Columns[].Width = 25f;
newTable.Columns[].Width = 45f;
newTable.Columns[].Width = 25f;
newTable.Columns[].Width = 25f;
newTable.Columns[].Width = 35f;
newTable.Columns[].Width = 40f;
newTable.Columns[].Width = 35f;
newTable.Columns[].Width = 15f;
newTable.Columns[].Width = 45f;
newTable.Columns[].Width = 30f;
newTable.Columns[].Width = 40f;
newTable.Columns[].Width = 50f;
newTable.Columns[].Width = 90f; //填充表格内容
for (int k = ; k < ; k++)
{
newTable.Rows[k].Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
}
for (int k = ; k < ; k++)
{
newTable.Columns[k].Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
}
//垂直居中
object unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;
object countjz = ;
WordApp.Selection.MoveEnd(ref unit, ref countjz);
WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中 //填充表格内容 第一行
newTable.Cell(, ).Range.Text = "姓名";
//合并单元格
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["name"].ToString(); newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "性 别";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["sex"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "出 生日 期";
newTable.Cell(, ).Merge(newTable.Cell(, ));
if (dat.Rows[]["createdate"].ToString().Equals(""))
{
newTable.Cell(, ).Range.Text = "";
}
else
{
newTable.Cell(, ).Range.Text = DateTime.Parse(dat.Rows[]["createdate"].ToString()).ToString("yyyy-MM-dd");
}
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "民 族";
newTable.Cell(, ).Range.Text = dat.Rows[]["minzu"].ToString(); newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Select();//选中一行 string FileName = "E:\\OA\\new\\web2\\upload\\" + dat.Rows[]["touxiang"].ToString();
object LinkToFile = false;
object SaveWithDocument = true;
object Anchor = WordDoc.Application.Selection.Range;
WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);
WordDoc.Application.ActiveDocument.InlineShapes[].Width = 72f;//图片宽度
WordDoc.Application.ActiveDocument.InlineShapes[].Height = 90f;//图片高
WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; // 填充表格内容 第二行
newTable.Cell(, ).Range.Text = "籍 贯";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["jiguan"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "出生地";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["chushengdi"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "户 口所在地";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["hukouaddress"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "身 高";
newTable.Cell(, ).Range.Text = dat.Rows[]["shengao"].ToString(); //填充表格内容 第三行
newTable.Cell(, ).Range.Text = "政治面貌";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["zhengzhi"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "入 党时 间";
newTable.Cell(, ).Merge(newTable.Cell(, ));
if (dat.Rows[]["rudangdate"].ToString().Equals(""))
{
newTable.Cell(, ).Range.Text = "";
}
else
{
newTable.Cell(, ).Range.Text = DateTime.Parse(dat.Rows[]["rudangdate"].ToString()).ToString("yyyy-MM-dd");
}
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "参加工作时间";
newTable.Cell(, ).Merge(newTable.Cell(, ));
if (dat.Rows[]["canjiaworktime"].ToString().Equals(""))
{
newTable.Cell(, ).Range.Text = "";
}
else
{
newTable.Cell(, ).Range.Text = DateTime.Parse(dat.Rows[]["canjiaworktime"].ToString()).ToString("yyyy-MM-dd");
}
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "婚姻状况";
newTable.Cell(, ).Range.Text = dat.Rows[]["hunyin"].ToString(); //填充表格内容 第四行
newTable.Cell(, ).Range.Text = "移动电话";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["phone"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "其他联系方式";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["qitalianxi"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "E-mail";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["email"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "档 案所在地";
newTable.Cell(, ).Range.Text = dat.Rows[]["danganaddress"].ToString(); //填充表格内容 第五行
newTable.Cell(, ).Range.Text = " 身份证 号 码";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["zhengjiannum"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "是否曾投递简历到XXXXXX:(如果是,请注明投递时间)";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["ifcengtoudi"].ToString(); //填充表格内容 第六行
newTable.Cell(, ).Range.Text = "家庭住址";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["tongxunaddress"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "驾龄";
newTable.Cell(, ).Range.Text = dat.Rows[]["jialing"].ToString();
newTable.Cell(, ).Range.Text = "外语种类及熟练程度";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["waiyu"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "微机操作能力";
newTable.Cell(, ).Range.Text = dat.Rows[]["weiji"].ToString(); //填充表格内容 第七行
newTable.Cell(, ).Range.Text = "收到录用通知后可到岗时间";
newTable.Cell(, ).Merge(newTable.Cell(, ));
if (dat.Rows[]["daogangdate"].ToString().Equals("三天内"))
{
newTable.Cell(, ).Range.Text = " □三天内 √一周内 □两周内 □一个月内 "; }
if (dat.Rows[]["daogangdate"].ToString().Equals("一周内"))
{
newTable.Cell(, ).Range.Text = " □三天内 √一周内 □两周内 □一个月内 "; }
if (dat.Rows[]["daogangdate"].ToString().Equals("两周内"))
{
newTable.Cell(, ).Range.Text = " □三天内 □一周内 √两周内 □一个月内 "; }
if (dat.Rows[]["daogangdate"].ToString().Equals("一个月内"))
{
newTable.Cell(, ).Range.Text = " □三天内 □一周内 □两周内 √一个月内 "; }
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Select();//选中一行
WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
//填充表格内容 第八行
newTable.Cell(, ).Range.Text = "应聘信息来 源";
newTable.Cell(, ).Merge(newTable.Cell(, )); if (dat.Rows[]["xinxilaiyuan"].ToString().Equals("华商报无忧招聘"))
{
newTable.Cell(, ).Range.Text = "√华商报无忧招聘 □中华英才网 □智联招聘 □其他( )";
}
if (dat.Rows[]["xinxilaiyuan"].ToString().Equals("中华英才网"))
{
newTable.Cell(, ).Range.Text = "□华商报无忧招聘 √中华英才网 □智联招聘 □其他( )";
}
if (dat.Rows[]["xinxilaiyuan"].ToString().Equals("智联招聘"))
{
newTable.Cell(, ).Range.Text = "□华商报无忧招聘 □中华英才网 √智联招聘 □其他( )";
}
if (dat.Rows[]["xinxilaiyuan"].ToString().Equals("其他"))
{
newTable.Cell(, ).Range.Text = "□华商报无忧招聘 □中华英才网 □智联招聘 √其他( )";
}
newTable.Cell(, ).Merge(newTable.Cell(, )); //填充表格内容 第九行
newTable.Cell(, ).Range.Text = "工作意向";
newTable.Cell(, ).Merge(newTable.Cell(, )); newTable.Cell(, ).Merge(newTable.Cell(, )); newTable.Cell(, ).Range.Text = "期望的工作岗位及职务:" + dat.Rows[]["qiwangwork"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Select();//选中一行
WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
//填充表格内容 第十行 newTable.Cell(, ).Range.Text = "期望薪资待遇:" + dat.Rows[]["qiwangmoney"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Select();//选中一行
WordApp.Selection.ParagraphFormat.LineSpacing = 25f; //填充表格内容 第十一行 newTable.Cell(, ).Range.Text = "教育背景";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "说 明";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "学习方式:1.统招;2.电大、夜大、函授、自考、成人(教育部承认学历);3.党校; 请在“学习方式”一栏中填入。如无此教育背景则对应行信息不填。";
newTable.Cell(, ).Merge(newTable.Cell(, )); //填充表格内容 第十二行 newTable.Cell(, ).Range.Text = "学 历";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "学 位";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "学习方式";
newTable.Cell(, ).Range.Text = "毕业院校";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "专 业";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "就读起止时间";
newTable.Cell(, ).Merge(newTable.Cell(, )); //填充表格内容 第13行
newTable.Cell(, ).Range.Text = "高 中/中 专";
newTable.Cell(, ).Merge(newTable.Cell(, ));
if (getXueLi("高中").Rows.Count > )
{
System.Data.DataRow dr = getXueLi("高中").Rows[];
newTable.Cell(, ).Range.Text = dr["xuewei"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["xuexifs"].ToString();
newTable.Cell(, ).Range.Text = dr["xuexiaoname"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["zhuanye"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM")
+ " 至 " + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM"); newTable.Cell(, ).Merge(newTable.Cell(, ));
}
else
{
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
} //填充表格内容 第14行 newTable.Cell(, ).Range.Text = "大 专";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Select();//选中一行
WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
if (getXueLi("大专").Rows.Count > )
{
System.Data.DataRow dr = getXueLi("大专").Rows[];
newTable.Cell(, ).Range.Text = dr["xuewei"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["xuexifs"].ToString();
newTable.Cell(, ).Range.Text = dr["xuexiaoname"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["zhuanye"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM")
+ " 至 " + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM");
newTable.Cell(, ).Merge(newTable.Cell(, ));
}
else
{
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
} //填充表格内容 第15行 newTable.Cell(, ).Range.Text = "本 科";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Select();//选中一行
WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
if (getXueLi("本科").Rows.Count > )
{
System.Data.DataRow dr = getXueLi("本科").Rows[];
newTable.Cell(, ).Range.Text = dr["xuewei"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["xuexifs"].ToString();
newTable.Cell(, ).Range.Text = dr["xuexiaoname"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["zhuanye"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM") +
" 至 " + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM");
newTable.Cell(, ).Merge(newTable.Cell(, ));
}
else
{
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
} //填充表格内容 第16行 newTable.Cell(, ).Range.Text = "第二学士 学位班";
newTable.Cell(, ).Merge(newTable.Cell(, ));
if (getXueLi("第二学士学位班").Rows.Count > )
{
System.Data.DataRow dr = getXueLi("第二学士学位班").Rows[];
newTable.Cell(, ).Range.Text = dr["xuewei"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["xuexifs"].ToString();
newTable.Cell(, ).Range.Text = dr["xuexiaoname"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["zhuanye"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM") +
" 至 " + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM");
newTable.Cell(, ).Merge(newTable.Cell(, )); }
else
{
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
} //填充表格内容 第17行 newTable.Cell(, ).Range.Text = "硕 士 研究生";
newTable.Cell(, ).Merge(newTable.Cell(, ));
if (getXueLi("硕士研究生").Rows.Count > )
{
System.Data.DataRow dr = getXueLi("硕士研究生").Rows[];
newTable.Cell(, ).Range.Text = dr["xuewei"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["xuexifs"].ToString();
newTable.Cell(, ).Range.Text = dr["xuexiaoname"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["zhuanye"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM") +
" 至 " + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM");
newTable.Cell(, ).Merge(newTable.Cell(, )); }
else
{
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
} // 填充表格内容 第18行 newTable.Cell(, ).Range.Text = "博 士 研究生";
newTable.Cell(, ).Merge(newTable.Cell(, ));
if (getXueLi("博士研究生").Rows.Count > )
{
System.Data.DataRow dr = getXueLi("博士研究生").Rows[];
newTable.Cell(, ).Range.Text = dr["xuewei"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["xuexifs"].ToString();
newTable.Cell(, ).Range.Text = dr["xuexiaoname"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dr["zhuanye"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM") +
" 至 " + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM");
newTable.Cell(, ).Merge(newTable.Cell(, )); }
else
{
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "";
newTable.Cell(, ).Merge(newTable.Cell(, ));
} // 填充表格内容 第19行 newTable.Cell(, ).Range.Text = "技术职称";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["zhicheng"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "职业资格";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["renzhizige"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = "其他资质及培训证书等";
newTable.Cell(, ).Merge(newTable.Cell(, ));
newTable.Cell(, ).Range.Text = dat.Rows[]["zhengshu"].ToString();
newTable.Cell(, ).Merge(newTable.Cell(, )); WordApp.ActiveDocument.PageSetup.SectionStart = Microsoft.Office.Interop.Word.WdSectionStart.wdSectionNewPage;//节的起始位置:新建页 newTable.Cell(, ).Select();//选中一行
// WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
object missing1 = System.Reflection.Missing.Value;
object count1 = ;
object WdLine1 = Microsoft.Office.Interop.Word.WdUnits.wdLine;//换一行;
WordApp.Selection.MoveDown(ref WdLine1, ref count1, ref missing1);//光标向下移1行
WordApp.Selection.MoveDown(ref WdLine1, ref count1, ref missing1);//光标向下移1行
WordApp.Selection.TypeParagraph();//在表格外回车 //文档中创建表格
Microsoft.Office.Interop.Word.Table newTable1 = WordDoc.Tables.Add(WordApp.Selection.Range, , , ref Nothing, ref Nothing);
//设置表格框
newTable1.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
newTable1.Columns[].Width = 25f;
newTable1.Columns[].Width = 40f;
newTable1.Columns[].Width = 40f;
newTable1.Columns[].Width = 30f;
newTable1.Columns[].Width = 50f;
newTable1.Columns[].Width = 70f;
newTable1.Columns[].Width = 70f;
newTable1.Columns[].Width = 130f;
newTable1.Columns[].Width = 90f; newTable1.Cell(, ).Range.Bold = ;//设置单元格中字体为粗体 WordApp.Selection.ParagraphFormat.LineSpacing = 10.5f; WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中
WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中
//填充表格内容
for (int i = ; i < ; i++)
{
newTable1.Rows.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle; }
for (int i = ; i < ; i++)
{
newTable1.Columns.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle; } WordApp.Selection.MoveEnd(ref unit, ref countjz);
WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中 //填充表格内容 第1行
newTable1.Cell(, ).Range.Text = "工作经历";
newTable1.Cell(, ).Merge(newTable1.Cell(, ));
newTable1.Cell(, ).Range.Text = "说 明";
newTable1.Cell(, ).Merge(newTable1.Cell(, ));
newTable1.Cell(, ).Range.Text = "1、请按工作时间由近至远(倒序)填写; 2、如在同一家公司因岗位、级别、地点发生变化请予以证明,详细填写。";
newTable1.Cell(, ).Merge(newTable1.Cell(, )); //填充表格内容 第2行
newTable1.Cell(, ).Range.Text = "起止时间 (精确到月)";
newTable1.Cell(, ).Merge(newTable1.Cell(, ));
newTable1.Cell(, ).Range.Text = "单位名称";
newTable1.Cell(, ).Merge(newTable1.Cell(, ));
newTable1.Cell(, ).Range.Text = "岗 位/职 务";
newTable1.Cell(, ).Range.Text = "主要职责(20字以内)";
newTable1.Cell(, ).Range.Text = "证明人/联系方式"; string sqlgz = "select * from hr_quanzhigongzuo where id in ( select top 6 " +
" id from hr_quanzhigongzuo where uid='" + uid + "' order by id desc ) order by id asc ";
DataTable datgz = ZWL.DBUtility.MyDBHelp.GetDataTable(sqlgz);
if (datgz.Rows.Count > )
{ for (int i = ; i < datgz.Rows.Count; i++)
{
newTable1.Cell(i + , ).Range.Text = DateTime.Parse(datgz.Rows["t1"].ToString()).ToString("yyyy.MM") + " 至 " +
DateTime.Parse(datgz.Rows["t2"].ToString()).ToString("yyyy.MM");
newTable1.Cell(i + , ).Merge(newTable1.Cell(i + , ));
newTable1.Cell(i + , ).Range.Text = datgz.Rows["gongzuodanwei"].ToString();
newTable1.Cell(i + , ).Merge(newTable1.Cell(i + , ));
newTable1.Cell(i + , ).Range.Text = datgz.Rows["zhiwu"].ToString();
newTable1.Cell(i + , ).Range.Text = datgz.Rows["zhuyao"].ToString();
newTable1.Cell(i + , ).Range.Text = datgz.Rows["zhengming"].ToString();
} for (int i = datgz.Rows.Count + ; i < ; i++)
{
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Merge(newTable1.Cell(i, ));
newTable1.Cell(i, ).Select();//选中一行
WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Merge(newTable1.Cell(i, ));
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Range.Text = "";
} }
else
{
for (int i = ; i < ; i++)
{
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Merge(newTable1.Cell(i, ));
newTable1.Cell(i, ).Select();//选中一行
WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Merge(newTable1.Cell(i, ));
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Range.Text = "";
} } //填充表格内容 第9行
newTable1.Cell(, ).Range.Text = "家庭成员";
newTable1.Cell(, ).Merge(newTable1.Cell(, ));
newTable1.Cell(, ).Range.Text = "关 系";
newTable1.Cell(, ).Merge(newTable1.Cell(, ));
newTable1.Cell(, ).Select();//选中一行
WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
//WordApp.Selection.MoveDown(ref WdLine1, ref count1, ref missing1);//光标向下移1行 newTable1.Cell(, ).Range.Text = "姓 名";
newTable1.Cell(, ).Range.Text = "出生日期";
newTable1.Cell(, ).Range.Text = "政治面貌";
newTable1.Cell(, ).Range.Text = "工作单位及职务(如退休填写退休前单位)";
newTable1.Cell(, ).Merge(newTable1.Cell(, )); string sqljt = " select top 3 * from hr_jiating where uid='" + uid + "' ";
DataTable datjt = ZWL.DBUtility.MyDBHelp.GetDataTable(sqljt); if (datjt.Rows.Count > )
{ for (int i = ; i < datjt.Rows.Count; i++)
{
newTable1.Cell(i + , ).Range.Text = datjt.Rows["guanli"].ToString();
newTable1.Cell(i + , ).Merge(newTable1.Cell(i + , ));
newTable1.Cell(i + , ).Select();//选中一行
WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
newTable1.Cell(i + , ).Range.Text = datjt.Rows["name"].ToString();
newTable1.Cell(i + , ).Range.Text = DateTime.Parse(datjt.Rows["createdate"].ToString()).ToString("yyyy.MM");
newTable1.Cell(i + , ).Range.Text = datjt.Rows["zhengzhi"].ToString();
newTable1.Cell(i + , ).Range.Text = datjt.Rows["gongzuodanwei"].ToString();
newTable1.Cell(i + , ).Merge(newTable1.Cell(i + , ));
} for (int i = datjt.Rows.Count + ; i < ; i++)
{
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Merge(newTable1.Cell(i, ));
newTable1.Cell(i, ).Select();//选中一行
WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Merge(newTable1.Cell(i, ));
} }
else
{
for (int i = ; i < ; i++)
{
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Merge(newTable1.Cell(i, ));
newTable1.Cell(i, ).Select();//选中一行
WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Range.Text = "";
newTable1.Cell(i, ).Merge(newTable1.Cell(i, ));
} } //填充表格内容 第13行
newTable1.Cell(, ).Range.Text = "自我鉴定";
newTable1.Cell(, ).Range.Text = dat.Rows[]["jianding"].ToString();
newTable1.Cell(, ).Merge(newTable1.Cell(, )); //填充表格内容 第14行
newTable1.Cell(, ).Range.Text = "劳动合同签订情况";
newTable1.Cell(, ).Merge(newTable1.Cell(, ));
if (dat.Rows[]["iflizhi"].ToString().Equals(""))
{
newTable1.Cell(, ).Range.Text = "√目前与其他单位不存在劳动关系; " +
"□目前与原单位尚未解除劳动合同,但承诺最迟在到岗时可以提供解除劳动合同证明;" +
"□其他(请说明)";
}
else if (dat.Rows[]["iflizhi"].ToString().Equals(""))
{
newTable1.Cell(, ).Range.Text = "□目前与其他单位不存在劳动关系; " +
"√目前与原单位尚未解除劳动合同,但承诺最迟在到岗时可以提供解除劳动合同证明;" +
"□其他(请说明)";
}
else
{
newTable1.Cell(, ).Range.Text = "□目前与其他单位不存在劳动关系; " +
"□目前与原单位尚未解除劳动合同,但承诺最迟在到岗时可以提供解除劳动合同证明;" +
"√其他(" + dat.Rows[]["iflizhi"].ToString() + ")";
}
newTable1.Cell(, ).Merge(newTable1.Cell(, )); string sqlyp = " select date from hr_yingpin where uid = '" + uid + "'";
string nian = "";
DataTable datyp = ZWL.DBUtility.MyDBHelp.GetDataTable(sqlyp);
if (datyp.Rows.Count > )
{
nian = DateTime.Parse(datyp.Rows[]["date"].ToString()).ToString("yyyy年MM月dd日");
}
//填充表格内容 第15行
newTable1.Cell(, ).Range.Text = "个人声明";
newTable1.Cell(, ).Merge(newTable1.Cell(, ));
newTable1.Cell(, ).Merge(newTable1.Cell(, ));
newTable1.Cell(, ).Range.Text = " 本人郑重声明,我在上述表中提的有关信息真实准确,并愿意承担因任何虚假与不实造成的一切后果;本人同意可在必要的情况下对有关信息进行核实。";
newTable1.Cell(, ).Merge(newTable1.Cell(, )); //填充表格内容 第16行 newTable1.Cell(, ).Range.Text = " 此外,我清楚以下事实:如果在30天内没有接到面试通知,本次申请可能失效,个人简历将进入公司人才库,不予退回。";
newTable1.Cell(, ).Merge(newTable1.Cell(, )); //填充表格内容 第17行 newTable1.Cell(, ).Range.Text = " 应聘者签名:" + dat.Rows[]["name"].ToString() + " " + nian;
newTable1.Cell(, ).Merge(newTable1.Cell(, )); object saveOption = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
WordDoc.SaveAs(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
WordApp.Application.Quit(ref saveOption, ref Nothing, ref Nothing);
WordDoc = null;
WordApp = null;
killAllProcess();
message = name + "文档生成成功,";
//}
//catch
//{
// message = "文件导出异常!";
//}
return message;
}
public DataTable getXueLi(string xueli)
{
string sql = "select * from hr_jiaoyu where uid='" + dat.Rows[]["id"].ToString() + "' and xueli ='" + xueli + "' ";
DataTable datxue = ZWL.DBUtility.MyDBHelp.GetDataTable(sql);
return datxue;
}
protected void killAllProcess() // 杀掉所有winword.exe进程
{
System.Diagnostics.Process[] myPs;
myPs = System.Diagnostics.Process.GetProcesses();
foreach (System.Diagnostics.Process p in myPs)
{
if (p.Id != )
{
string myS = "WINWORD.EXE" + p.ProcessName + " ID:" + p.Id.ToString();
try
{
if (p.Modules != null)
if (p.Modules.Count > )
{
System.Diagnostics.ProcessModule pm = p.Modules[];
myS += "\n Modules[0].FileName:" + pm.FileName;
myS += "\n Modules[0].ModuleName:" + pm.ModuleName;
myS += "\n Modules[0].FileVersionInfo:\n" + pm.FileVersionInfo.ToString();
if (pm.ModuleName.ToLower() == "winword.exe")
p.Kill();
}
}
catch
{ }
finally
{
}
}
}
}
public bool IsReusable
{
get
{
return false;
}
} }
调用方法:
private void Export(string id)
{
string wjname =DateTime.Now.ToString("yyyyMMddhhmmssfff");
string filepath = Server.MapPath("./ReportFile/") + wjname;
Directory.CreateDirectory(filepath); //创建文件所在目录
ExportWord dao = new ExportWord();
if (id.IndexOf(',') > -)
{ string[] strs = id.Split(',');
for (int i = ; i < strs.Length; i++)
{
string sql = " select name from hr_person where id =" + strs;
DataTable dat = ZWL.DBUtility.MyDBHelp.GetDataTable(sql);
dao.ProcessRequest(Context, strs, filepath + "/" + dat.Rows[]["name"].ToString() +i+ ".doc");
}
//多个ID,所以这边调用压缩方法
DirectoryToZip(filepath, Server.MapPath("./ReportFile/" + wjname + ".zip"));
Response.Write("<script>window.location='ReportFile/" + wjname + ".zip'</script>"); }
else
{
string sql = " select name from hr_person where id =" + id;
DataTable dat = ZWL.DBUtility.MyDBHelp.GetDataTable(sql);
dao.ProcessRequest(Context, id, filepath + "/" +dat.Rows[]["name"].ToString() + ".doc");
Response.Write("<script>window.location='ReportFile/" + wjname+"/" + dat.Rows[]["name"].ToString() + ".doc'</script>"); } }
//【filepath想要压缩文件的地址】
//【zippath输出压缩文件的地址】
private void DirectoryToZip(string path, string address)
{
//获取当前文件夹中所有的文件
string[] filenames = Directory.GetFiles(path);
Crc32 crc = new Crc32();
//创建输出文件(ZIP格式的文件)
ZipOutputStream zos = new ZipOutputStream(File.Create(address));
zos.SetLevel();
//遍历所有的文件
foreach (string name in filenames)
{
FileStream fs = File.OpenRead(name);
byte[] buffer = new byte[fs.Length];
//读取文件
fs.Read(buffer, , Convert.ToInt32(fs.Length));
//获取文件的文件名称和后缀名
string file = Path.GetFileName(name);
//输出文件的名称
ZipEntry entry = new ZipEntry(file);
crc.Reset();
crc.Update(buffer);
entry.Crc = crc.Value;
zos.PutNextEntry(entry);
zos.Write(buffer, , Convert.ToInt32(fs.Length));
fs.Close();
}
zos.Finish();
zos.Close();
}
有什么问大家可以讨论,讨论,我也只是研究了一周,有许多都是 ,网上找其他人的,代码是长了点,但是只要把前面的看懂了就行,后面的只是重复前面的代码,效果如图片
N16NS6$3.jpg)
c#(.net) 导出 word表格的更多相关文章
- PowerDesiger 15逆向生成工程E-R图及导出word表格
应用环境:win8(64位)+oracle10g(32位)服务端+PowerDesigner15 需求:oracle数据库中的表结构是web工程框架hibernate 自动生成,现需要将数据库中已有的 ...
- poi导出word表格详解 超详细了
转:非常感谢原作者 poi导出word表格详解 2018年07月20日 10:41:33 Z丶royAl 阅读数:36138 一.效果如下 二.js代码 function export_word( ...
- poi导出word表格跨行
DataCommon.java package com.ksource.pwlp.model.statistic; public class DataCommon { private Long id; ...
- C# 导出word 表格代码
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- poi导出word表格
代码如下: package com.ksource.pwlp.util; import java.io.FileOutputStream; import java.math.BigInteger; i ...
- .net使用AsposeWord导出word table表格
本文为原创,转载请注明出处 1.前言 .net平台下导出word文件还可以使用Microsoft.Office.Interop和NPOI,但是这两者都有缺点,微软的Office.Interop组件需要 ...
- 使用NPOI2.1.3.1版本导出word附带表格和图片
原文:http://www.cnblogs.com/afutureBoss/p/4074397.html?utm_source=tuicool&utm_medium=referral 最近项目 ...
- 记录一下表格用poi的导出word
也是网上找的代码http://53873039oycg.iteye.com/blog/2152009,但是横向合并单元格没成功.只能用很蠢的办法建立了好多table public void fillT ...
- C#通过模板导出Word(文字,表格,图片)
C#通过模板导出Word(文字,表格,图片) C#导出Word,Excel的方法有很多,这次因为公司的业务需求,需要导出内容丰富(文字,表格,图片)的报告,以前的方法不好使,所以寻找新的导出方法, ...
随机推荐
- Week1 Team Homework #3: 软件工程在北航
在组内成员的共同努力,我们采访了几个学长学姐,顺利完成任务.反馈信息如下: 平均每周花在这门课上的时间 平均写的代码总行数 学到的最有用的部分 最没用的部分 <软件工程>最应该改进的地方 ...
- 怎么直接在MySQL客户端上执行SQl文件?
\. 直接把sql文件拖进去就行了,(斜杠+.+空格+sql文件)
- JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表
本文目录: 1.自定义JDBC框架 ——数据库元数据:DataBaseMetaData 2.自定义JDBC框架 ——数据库元数据:DataBaseMetaData ...
- 阿里云ubuntu12.04下安装使用mongodb
阿里云ubuntu12.04下安装mongodb apt-get install mongodb 阿里云ubuntu12.04下卸载mongodb,同时删除配置文件 apt-get pur ...
- java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@450b2f48 异常处理
晕死的错误,改了半天也没想到是这样的原因,基础正要呀... 先看一下警告信息: 07-07 08:32:19.540: WARN/WindowManager(74): Failed looking u ...
- jquery层居中,点击小图查看大图,弹出层居中代码
1.层居中 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- 漫谈CGI FastCGI WSGI
作者:auxten链接:https://zhuanlan.zhihu.com/p/20054757来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. CGI(Common ...
- linux上部署应用
1.编写traffic.sh 引入相关的jar包及java环境路径 2.crontab -e 加入: */10 * * * * cd /opt/sys/traffic_version/bin & ...
- Oracle 6 - 锁和闩 - transaction的可串行化
本文主要内容 1.transaction的可串行化 2.数据库并发带来的问题, dirty read, Nonrepeatable reads, Phantoms幻读 3.隔离级别和2中的问题 4. ...
- Strust2最基本使用
制作一个登陆表单,然后在另一个页面显示提交的内容,简单的一个小工程. 页面: //login.jsp <form action="login.action" method=& ...