直接上代码

using System;
using System.IO;
using System.Data;
using Word = Microsoft.Office.Interop.Word; namespace CreateWord
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class CreateWord
{
public CreateWord()
{
//
// TODO: 在此处添加构造函数逻辑
//
} public static DataSet ds = new DataSet();//DateSet数据集
public static string Mem_ID ="";//病案号
public static string OrderNO = "";//订单号
public static string CheckOrder = "";//体检订单
public static string docPath = "";//文档路径
public static string Name="";//体检人姓名 #region 绘制所表格
public static bool CreateWordDoc()
{ string SignDoctor = "";//检验的医生签字 int Row=0;//需要绘制表的行
int Column=0;//需要绘制的 string PatientName="";
string PatientSex=""; object what = Microsoft.Office.Interop.Word.WdGoToItem.wdGoToLine;//定位到文档最后一行
object which = Microsoft.Office.Interop.Word.WdGoToDirection.wdGoToLast;//定位到文档最后一行
object count = 99999999; object Nothing = System.Reflection.Missing.Value;
object strFalse = false;//设置False
object strTrue = true;//设置true
object strPwd = "HLH";//设置文档密码 object Template = System.Windows.Forms.Application.StartupPath + @"\\dot.doc"; Word.Application appWord = new Word.ApplicationClass();//创建一个Word应用程序对象
Word.Document docWord = appWord.Documents.Add(ref Template, ref Nothing, ref Nothing, ref Nothing);//创建一个Word文档对象 #region 生成表格 foreach(DataRow PatientInfo in ds.Tables["Patient"].Rows)
{
PatientName = PatientInfo["Name"].ToString().Trim(); if(PatientInfo["Sex"].ToString().Trim() =="男")
{
PatientSex="先生";
}
else
{
PatientSex="女士";
}
} appWord.Selection.GoTo(ref what, ref which, ref count, ref Nothing); //定位到文档最后一行
appWord.ActiveWindow.ActivePane.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument;//换页
object pageBreak = Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;//换页
appWord.Selection.InsertBreak(ref pageBreak);//换页 foreach(DataRow Code in ds.Tables["Stage_Type"].Rows)
{
string TypeCode = Code["Code"].ToString();//取出当前检查类型的Code
if(TypeCode=="8")//如果等于8就是体格检查
{
Column = 4;//如果是8体格检查那么就可以定下需要生成表格的列数了为4列
foreach(DataRow Type_Code in ds.Tables["Stage"].Select("Type_Code="+TypeCode))
{
string StageCode = Type_Code["Stage_Code"].ToString();//循环取出当前Type_Code等于8也就是体格检查的StageCode foreach(DataRow Stage_Code in ds.Tables["Item_Result"].Select("Stage_Code="+StageCode))//循环检验结果里面等于当前StageCode的检验项
{
if((ds.Tables["Item_Result"].Select("Stage_Code="+StageCode).Length) % 2 != 0)//要在原有的行数基础上加1行留着写标题头的1行,如果当前匹配的行数不能对2整除就加1在整除
{
Row = ((ds.Tables["Item_Result"].Select("Stage_Code="+StageCode).Length + 1) / 2) + 1;//因为是4列所以表里面两条数据占用1行并且不要出现单数行
}
else//能被2整除是双数行
{
Row = (ds.Tables["Item_Result"].Select("Stage_Code="+StageCode).Length / 2) + 1;
} //绘制表格所需要的行数就是能匹配当前StageCode检验项的行数(长度)有了行列就可以绘制表格了
appWord.Selection.TypeText("【"+Type_Code["Name"].ToString()+"】");
Word.Table tabTitle = docWord.Tables.Add(appWord.Selection.Range,Row,Column,ref Nothing, ref Nothing);
tabTitle.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;//表格边框
tabTitle.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;//设置表格边框
tabTitle.Borders.OutsideColor = Word.WdColor.wdColorPaleBlue;//表格边框颜色
tabTitle.Borders.InsideColor = Word.WdColor.wdColorPaleBlue;//表格边框颜色
tabTitle.Rows[1].Range.Shading.ForegroundPatternColor = Word.WdColor.wdColorYellow;//设置第一行的单元格背景色为黄色
appWord.Selection.GoTo(ref what, ref which, ref count, ref Nothing); //定位到文档最后一行
appWord.Selection.PageSetup.LeftMargin = appWord.CentimetersToPoints((float)3.49);//设置标尺
appWord.Selection.ParagraphFormat.LineSpacing = 15f;//设置文档的行间距 tabTitle.Columns[1].Width = 105;
tabTitle.Columns[2].Width = 105;
tabTitle.Columns[3].Width = 104;
tabTitle.Columns[4].Width = 104;
//向表格单元格添加值
tabTitle.Cell(1,1).Range.Text = "项目名称";//设置第一行第一列单元格内容
tabTitle.Cell(1,2).Range.Text = "检查结果";//设置第一行第二列单元格内容
tabTitle.Cell(1,3).Range.Text = "项目名称";//设置第一行第三列单元格内容
tabTitle.Cell(1,4).Range.Text = "检查结果";//设置第一行第四列单元格内容 int tabRow=2;//从第二列开始写单元格头
int tabColumn=1;//从第1列开始
foreach(DataRow Result in ds.Tables["Item_Result"].Select("Stage_Code="+StageCode))
{
if(tabColumn > 4)//因为知道体格检查类型表格列为4如果列大4就换行 在从第1列开始
{
tabRow++;
tabColumn=1;
}
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["Name"].ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["Result"].ToString().Trim();
tabColumn++;
} //添加科室小结
if(ds.Tables["Sub_total"].Select("Stage_Code="+StageCode).Length > 0)//判断有小结的就添加小结
{
appWord.Selection.Font.Bold = 5;//加粗
appWord.Selection.TypeText("科室小结"+"\n");
appWord.Selection.Font.Bold = 0;//取消加粗 int SummaryNo = 0;//小结数量
foreach(DataRow Summary in ds.Tables["Sub_total"].Select("Stage_Code="+StageCode))
{
SummaryNo++;
appWord.Selection.ParagraphFormat.IndentCharWidth(2);//增加缩进
appWord.Selection.TypeText(SummaryNo.ToString()+"、"+Summary["Impression"].ToString()+"\n");
appWord.Selection.ParagraphFormat.IndentCharWidth(-2);//减少缩进
} } //添加医生签字
foreach(DataRow Sign in ds.Tables["Input_Stage_Record"].Select("Stage_Code="+StageCode))
{
appWord.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;//右对齐
appWord.Selection.TypeText("医师:"+Sign["doctor_name"].ToString()+"\n");
appWord.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;//两端齐
}
break;
} }
}
else if(TypeCode=="9")//是医技检查
{
Column = 2;//如果是9医技检查那么就可以定下需要生成表格的列数了为2列
foreach(DataRow Type_Code in ds.Tables["Stage"].Select("Type_Code="+TypeCode))
{
string StageCode = Type_Code["Stage_Code"].ToString();//循环取出当前Type_Code等于8也就是体格检查的StageCode foreach(DataRow Stage_Code in ds.Tables["Item_Result"].Select("Stage_Code="+StageCode))//循环检验结果里面等于当前StageCode的检验项
{ Row = ds.Tables["Item_Result"].Select("Stage_Code="+StageCode).Length + 1;//因为是2列所以 //绘制表格所需要的行数就是能匹配当前StageCode检验项的行数(长度)有了行列就可以绘制表格了
appWord.Selection.TypeText("【"+Type_Code["Name"].ToString()+"】");
Word.Table tabTitle = docWord.Tables.Add(appWord.Selection.Range,Row,Column,ref Nothing, ref Nothing);
tabTitle.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;//表格边框
tabTitle.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;//设置表格边框
tabTitle.Borders.OutsideColor = Word.WdColor.wdColorPaleBlue;//表格边框颜色
tabTitle.Borders.InsideColor = Word.WdColor.wdColorPaleBlue;//表格边框颜色
tabTitle.Rows[1].Range.Shading.ForegroundPatternColor = Word.WdColor.wdColorYellow;//设置第一行的单元格背景色为黄色
appWord.Selection.GoTo(ref what, ref which, ref count, ref Nothing); //定位到文档最后一行
appWord.Selection.PageSetup.LeftMargin = appWord.CentimetersToPoints((float)3.49);//设置标尺
appWord.Selection.ParagraphFormat.LineSpacing = 15f;//设置文档的行间距 //向表格单元格添加值
tabTitle.Cell(1,1).Range.Text = "项目名称";//设置第一行第一列单元格内容
tabTitle.Cell(1,2).Range.Text = "检查结果";//设置第一行第二列单元格内容 int tabRow=2;//从第二列开始写单元格头
int tabColumn=1;//从第1列开始
foreach(DataRow Result in ds.Tables["Item_Result"].Select("Stage_Code="+StageCode))
{
if(tabColumn > 4)//因为知道体格检查类型表格列为4如果列大4就换行 在从第1列开始
{
tabRow++;
tabColumn=1;
}
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["Name"].ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["Result"].ToString().Trim();
tabColumn++;
} //添加科室小结
if(ds.Tables["Sub_total"].Select("Stage_Code="+StageCode).Length > 0)//判断有小结的就添加小结
{
appWord.Selection.Font.Bold = 5;//加粗
appWord.Selection.TypeText("科室小结"+"\n");
appWord.Selection.Font.Bold = 0;//取消加粗 int SummaryNo = 0;//小结数量
foreach(DataRow Summary in ds.Tables["Sub_total"].Select("Stage_Code="+StageCode))
{
SummaryNo++;
appWord.Selection.ParagraphFormat.IndentCharWidth(2);//增加缩进
appWord.Selection.TypeText(SummaryNo.ToString()+"、"+Summary["Impression"].ToString()+"\n");
appWord.Selection.ParagraphFormat.IndentCharWidth(-2);//减少缩进
} } //添加医生签字
foreach(DataRow Sign in ds.Tables["Input_Stage_Record"].Select("Stage_Code="+StageCode))
{
appWord.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;//右对齐
appWord.Selection.TypeText("医师:"+Sign["doctor_name"].ToString()+"\n");
appWord.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;//两端齐
}
break;
}
}
}
else if(TypeCode=="10")//检验类型
{
Column = 6;//如果是9医技检查那么就可以定下需要生成表格的列数了为2列
foreach(DataRow Type_Code in ds.Tables["Stage"].Select("Type_Code="+TypeCode))
{
string StageCode = Type_Code["Stage_Code"].ToString();//循环取出当前Type_Code等于8也就是体格检查的StageCode foreach(DataRow Stage_Code in ds.Tables["Lab_Result"].Select("Stage_Code="+StageCode))//循环检验结果里面等于当前StageCode的检验项
{ Row = ds.Tables["Lab_Result"].Select("Stage_Code="+StageCode).Length + 1;//因为是2列所以 //绘制表格所需要的行数就是能匹配当前StageCode检验项的行数(长度)有了行列就可以绘制表格了
appWord.Selection.TypeText("【"+Type_Code["Name"].ToString()+"】");
Word.Table tabTitle = docWord.Tables.Add(appWord.Selection.Range,Row,Column,ref Nothing, ref Nothing);
tabTitle.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;//表格边框
tabTitle.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;//设置表格边框
tabTitle.Borders.OutsideColor = Word.WdColor.wdColorPaleBlue;//表格边框颜色
tabTitle.Borders.InsideColor = Word.WdColor.wdColorPaleBlue;//表格边框颜色
tabTitle.Rows[1].Range.Shading.ForegroundPatternColor = Word.WdColor.wdColorYellow;//设置第一行的单元格背景色为黄色
appWord.Selection.GoTo(ref what, ref which, ref count, ref Nothing); //定位到文档最后一行
appWord.Selection.PageSetup.LeftMargin = appWord.CentimetersToPoints((float)3.49);//设置标尺
appWord.Selection.ParagraphFormat.LineSpacing = 15f;//设置文档的行间距
//设置第一列表格的宽度
tabTitle.Columns[1].Width = 40;
tabTitle.Columns[2].Width = 130;
tabTitle.Columns[6].Width = 40; //向表格单元格添加值
tabTitle.Cell(1,1).Range.Text = "序号";//设置第一行第一列单元格内容
tabTitle.Cell(1,2).Range.Text = "项目名称";//设置第一行第一列单元格内容
tabTitle.Cell(1,3).Range.Text = "检查结果";//设置第一行第二列单元格内容
tabTitle.Cell(1,4).Range.Text = "单位";//设置第一行第三列单元格内容
tabTitle.Cell(1,5).Range.Text = "参考范围";//设置第一行第四列单元格内容
tabTitle.Cell(1,6).Range.Text = "标志";//设置第一行第五列单元格内容 int tabRow=2;//从第二列开始写单元格头
int tabColumn=1;//从第1列开始
foreach(DataRow Result in ds.Tables["Lab_Result"].Select("Stage_Code="+StageCode))
{
if(tabColumn > 6)//因为知道体格检查类型表格列为4如果列大4就换行 在从第1列开始
{
tabRow++;
tabColumn=1;
}
tabTitle.Cell(tabRow,tabColumn).Range.Text = (tabRow-1).ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["Name"].ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["Result"].ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["Unit"].ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["NorMal_Range"].ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["Flag"].ToString().Trim();
tabColumn++;
SignDoctor = Result["Doctor_name"].ToString().Trim();
}
//添加医生签字
appWord.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;//右对齐
appWord.Selection.TypeText("医师:"+SignDoctor+"\n");
appWord.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;//两端齐
break;
}
}
}
if(TypeCode=="10")
{
foreach(DataRow Type_Code in ds.Tables["Stage"].Select("Stage_Code=44"))
{
foreach(DataRow Rows in ds.Tables["BioChemResult"].Rows)
{
Row = ds.Tables["BioChemResult"].Rows.Count + 1;//因为是2列所以 appWord.Selection.TypeText("【"+Type_Code["Name"].ToString()+"】");
Word.Table tabTitle = docWord.Tables.Add(appWord.Selection.Range,Row,6,ref Nothing, ref Nothing);
tabTitle.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;//表格边框
tabTitle.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;//设置表格边框
tabTitle.Borders.OutsideColor = Word.WdColor.wdColorPaleBlue;//表格边框颜色
tabTitle.Borders.InsideColor = Word.WdColor.wdColorPaleBlue;//表格边框颜色
tabTitle.Rows[1].Range.Shading.ForegroundPatternColor = Word.WdColor.wdColorYellow;//设置第一行的单元格背景色为黄色
appWord.Selection.GoTo(ref what, ref which, ref count, ref Nothing); //定位到文档最后一行
appWord.Selection.PageSetup.LeftMargin = appWord.CentimetersToPoints((float)3.49);//设置标尺
appWord.Selection.ParagraphFormat.LineSpacing = 15f;//设置文档的行间距
//设置第一列表格的宽度
tabTitle.Columns[1].Width = 40;
tabTitle.Columns[2].Width = 130;
tabTitle.Columns[6].Width = 40;
//向表格单元格添加值
tabTitle.Cell(1,1).Range.Text = "序号";//设置第一行第一列单元格内容
tabTitle.Cell(1,2).Range.Text = "项目名称";//设置第一行第一列单元格内容
tabTitle.Cell(1,3).Range.Text = "检查结果";//设置第一行第二列单元格内容
tabTitle.Cell(1,4).Range.Text = "单位";//设置第一行第三列单元格内容
tabTitle.Cell(1,5).Range.Text = "参考范围";//设置第一行第四列单元格内容
tabTitle.Cell(1,6).Range.Text = "标志";//设置第一行第五列单元格内容 int tabRow=2;//从第二列开始写单元格头
int tabColumn=1;//从第1列开始
foreach(DataRow Result in ds.Tables["BioChemResult"].Rows)
{
if(tabColumn > 6)//因为知道体格检查类型表格列为4如果列大4就换行 在从第1列开始
{
tabRow++;
tabColumn=1;
}
tabTitle.Cell(tabRow,tabColumn).Range.Text = (tabRow-1).ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["ItemName"].ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["ResultValue"].ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["Unit"].ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["NorMal_Range"].ToString().Trim();
tabColumn++;
tabTitle.Cell(tabRow,tabColumn).Range.Text = Result["Flag"].ToString().Trim();
tabColumn++;
SignDoctor = Result["Name"].ToString().Trim();
} foreach(DataRow Comment in ds.Tables["BioChemComment"].Rows)
{
if(Comment["Remark"].ToString().Trim() !="")
{
appWord.Selection.TypeText("备注:"+Comment["Remark"].ToString().Trim()+"\n");
} }
//添加医生签字
appWord.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;//右对齐
appWord.Selection.TypeText("医师:"+SignDoctor+"\n");
appWord.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;//两端齐
break;
}
} //换页写结果及建议
appWord.ActiveWindow.ActivePane.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument;//换页
pageBreak = Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;//换页
appWord.Selection.InsertBreak(ref pageBreak);//换页 appWord.Selection.Font.Size = 12;
appWord.Selection.TypeText(PatientName+PatientSex);
appWord.Selection.TypeParagraph();//换段落
appWord.Selection.ParagraphFormat.IndentCharWidth(2);//增加缩进
appWord.Selection.Font.Bold = 5;//加粗
appWord.Selection.TypeText("您好!您这次在我院体检发现具有临床意义的结果如下:"+"\n");
appWord.Selection.Font.Bold = 0;//取消加粗
appWord.Selection.ParagraphFormat.IndentCharWidth(-2);//减少缩进
int ResultNo = 0;//小结数量
foreach(DataRow Result in ds.Tables["Senior_Result"].Rows)
{
ResultNo++;
appWord.Selection.ParagraphFormat.FirstLineIndent = appWord.CentimetersToPoints((float)1.30);//增加首行缩进
appWord.Selection.TypeText(ResultNo.ToString()+"、"+Result["Result"].ToString()+"\n"); } appWord.Selection.Font.Bold = 5;//加粗
appWord.Selection.TypeText("我们根据您现在的实际健康情况提出如下建议:"+"\n");
appWord.Selection.Font.Bold = 0;//取消加粗 ResultNo = 0;
foreach(DataRow Suggestion in ds.Tables["Senior_Result"].Rows)
{
ResultNo++;
if(Suggestion["Suggestion"].ToString()=="")
{
ResultNo--;
}
else
{
appWord.Selection.ParagraphFormat.FirstLineIndent = appWord.CentimetersToPoints((float)1.30);//增加首行缩进
appWord.Selection.TypeText(ResultNo.ToString()+"、"+Suggestion["Suggestion"].ToString()+"\n");
}
}
}
} //生成客套话
appWord.Selection.TypeParagraph();//换段落
appWord.Selection.Font.Bold = 5;//加粗
appWord.Selection.TypeText("关爱健康、全人照顾是北京惠兰医院的宗旨。热烈欢迎您及家人、朋友再次来我院体检及就诊。我们将竭诚为您提供完美的服务。"+"\n");
appWord.Selection.TypeText("北京惠兰医院就诊咨询联系电话:64390831、64390832"+"\n");
appWord.Selection.Font.Bold = 0;//加粗
appWord.Selection.ParagraphFormat.IndentCharWidth(10);//增加缩进
appWord.Selection.TypeText("主检医师:"+"\n");
appWord.Selection.TypeText("首席总检医师签名:"+"\n");
appWord.Selection.TypeText("北京惠兰医院(盖章)"+"\n");
appWord.Selection.TypeText("日期:"+"\n");
appWord.Selection.ParagraphFormat.IndentCharWidth(-10);//增加缩进 #endregion foreach (Word.Bookmark bm in docWord.Bookmarks)
{
if(bm.Name == "CheckNo")
{
bm.Select();
bm.Range.Text = Mem_ID;
}
if(bm.Name == "TitleName")
{
bm.Select();
bm.Range.Text = ds.Tables["Patient"].Rows[0]["Name"].ToString();
}
if(bm.Name == "Sex")
{
bm.Select();
bm.Range.Text = ds.Tables["Patient"].Rows[0]["Sex"].ToString();
}
if(bm.Name == "Age")
{
bm.Select();
bm.Range.Text = ds.Tables["Patient"].Rows[0]["Age"].ToString(); }
if(bm.Name == "OrderNo")
{
bm.Select();
bm.Range.Text = OrderNO; }
if(bm.Name == "CheckOrder")
{
bm.Select();
bm.Range.Text = CheckOrder;
bm.Range.Font.Size = 12;
bm.Range.Font.Bold = 5; }
if(bm.Name == "RegDate")
{
bm.Select();
foreach(DataRow row in ds.Tables["Input_Stage_Record"].Select("Stage_Code=0"))
{
bm.Range.Text = row["Record_Time"].ToString();
}
} if(bm.Name == "Date")
{
bm.Select();
bm.Range.Text = DateTime.Now.Date.ToShortDateString(); }
if(bm.Name == "Name")
{
bm.Select();
bm.Range.Text = ds.Tables["Patient"].Rows[0]["Name"].ToString();
}
if(bm.Name == "Purpose")
{
bm.Select();
bm.Range.Text = "关爱健康、全人照顾";
}
}
Name = ds.Tables["Patient"].Rows[0]["Name"].ToString();
docWord.ActiveWindow.View.Type = Word.WdViewType.wdPrintView; //设置Word文档视图模式
appWord.ActiveDocument.Protect(Word.WdProtectionType.wdAllowOnlyReading,ref strFalse,ref strPwd,ref strFalse, ref strTrue);//设置Word权限 #region 保存生成的Word文档
//设置或获取文档对象保存路径
object path = @"C:\\体检报告\\"+ DateTime.Now.Date.ToShortDateString()+ds.Tables["Patient"].Rows[0]["Name"].ToString()+"体检报告.doc";
docPath = path.ToString();
if (File.Exists(path.ToString()))//判断文件是否存在
{
File.Delete(path.ToString());//若文件存在就删除这个文件
}
//保存当前Word文档对象到物理路径
docWord.SaveAs(ref path, 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);
//关闭当前Word文档对象
docWord.Close(ref Nothing, ref Nothing, ref Nothing);
//关闭当前Word应用程序
appWord.Quit(ref Nothing, ref Nothing, ref Nothing);
//关闭WinWord进程
System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcesses();
foreach(System.Diagnostics.Process prc in process)
{
if(prc.ProcessName == "WINWORD")
{
prc.Kill();
}
}
return true; #endregion
}
#endregion
}
}

C# 操作World生成报告的更多相关文章

  1. jmeter生成报告指示板

    JMeter支持仪表板图表和报告生成 数据从一个测试计划. 这一章描述了如何配置和使用生成器. 概述 JMeter的仪表板生成器是一个模块化的扩展. 它的缺省行为是读取和处理样本 CSV文件生成HTM ...

  2. C# 处理Word自动生成报告 三、设计模板

    C# 处理Word自动生成报告 一.概述 C# 处理Word自动生成报告 二.数据源例子 C# 处理Word自动生成报告 三.设计模板 C# 处理Word自动生成报告 四.程序处理 既然是模板就少不了 ...

  3. LoadRunner结果分析与生成报告

    启动Analysis会话 1.打开HP LoadRunner2.打开LoadRunner Analysis在LoadRunner Analysis选项卡中单击分析负载测试3.打开Analysis会话文 ...

  4. selenium+python-unittest多线程生成报告

    前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了. 环境必备 ...

  5. 安全基线自动化扫描、生成报告、加固的实现(以Tomcat为例)

    一.背景说明 当前在服务上线前,安全部门都会对服务基线配置进行把关,整个流程可以分为扫描.生成报告.修复三步. 在执行这一流程时当前普遍的做法是半自动化的,扫描和生成报告是自动化的,执行扫描.执行生成 ...

  6. Monkey 生成报告方法

    Monkey 命令简介 Monkey 是 SDK 中附带的一个小工具,用来进行压力测试.进行压力测试之前,首先要进行安装 SDK ,并配置环境变量: 1.安装 Java JDK 并配置环境变量(计算机 ...

  7. unittest多线程生成报告-----BeautifulReport

    原文地址https://www.cnblogs.com/yoyoketang/p/8404204.html 前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点, ...

  8. selenium+python自动化91-unittest多线程生成报告(BeautifulReport)

    前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了. 环境必备 ...

  9. unittest多线程生成报告(BeautifulReport)

    前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了. 环境必备 ...

随机推荐

  1. element-ui 的input组件 @keyup.enter事件的添加办法

    <el-input placeholder="请输入密码" type="password" @keyup.enter.native="login ...

  2. 【BZOJ2693】jzptab (莫比乌斯反演)

    Description 给你$n$,$m$,求 $\sum^n_{i=1} \sum^m_{j=1} \ lcm(x,y)$ 答案对$100000009$取模. 多组数据. Input 第一行有一个正 ...

  3. 乘法逆元__C++

    在开始之前我们先介绍3个定理: 1.乘法逆元(在维基百科中也叫倒数,当然是 mod p后的,其实就是倒数不是吗?): 如果ax≡1 (mod p),且gcd(a,p)=1(a与p互质),则称a关于模p ...

  4. 求N维前缀和

    转载自http://blog.csdn.net/jzhang1/article/details/50528549#comments 膜拜 #include <iostream> #incl ...

  5. net7:Web用户控件ascx的使用及其动态加载

    原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] Web用户控件test.ascx的源代码: using System;using System;using Sys ...

  6. python 修饰器 最好的讲解

    Python的修饰器的英文名叫Decorator,修饰器就是对一个已有的模块做一些“修饰工作”,比如在现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小装饰(小功能 ...

  7. 在 Ubuntu 下使用 com port, serial port

    1. Install putty 2. Insert serial-to-usb converter cable converter to NB or PC 3. check converter un ...

  8. poj 1950(搜索)

    Dessert Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5430   Accepted: 2029 Descripti ...

  9. 模块化开发(seajs)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. Linux VFS

    翻译自Linux文档中的vfs.txt 介绍 VFS(Virtual File System)是内核提供的文件系统抽象层,其提供了文件系统的操作接口,可以隐藏底层不同文件系统的实现. Directir ...