c#(.net) 导出 word表格

做了差不多一周的导出Word,现在把代码贴出来   :

ExportWord.cs

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Web;
  5 using System.Data;
  6 using System.IO;
  7 
  8 
  9 /// <summary>
 10 ///DaoChuWord 的摘要说明
 11 /// </summary>
 12 public class ExportWord
 13 {
 14     public ExportWord()
 15     {
 16         //
 17         //TODO: 在此处添加构造函数逻辑
 18         //
 19     }
 20 
 21     public DataTable dat = null;
 22     public void ProcessRequest(HttpContext context, string id,string name)
 23     {
 24         context.Response.ContentType = "text/plain";
 25         GetDataTable(id);
 26         CreateWord(name);  
 27         //此处为了批量操作,把下面这个注掉
 28         //context.Response.End();
 29 
 30     }
 31 
 32     DataTable GetDataTable(string id)
 33     {
 34         string sql = " select * from hr_person where id =" + id;
 35         dat = ZWL.DBUtility.MyDBHelp.GetDataTable(sql);
 36         if (dat != null)
 37         {
 38             return dat;
 39         }
 40         throw new NoNullAllowedException();
 41     }
 42 
 43     public string CreateWord(string name)
 44     {
 45         string uid = dat.Rows[0]["id"].ToString();
 46         string message = "";
 47         
 49             Object Nothing = System.Reflection.Missing.Value;
 50            
 52             object filename = name;  //文件保存路径  
 53          54             //创建Word文档 
 55             Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
 56           
 57             Microsoft.Office.Interop.Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
 58             WordApp.Selection.PageSetup.LeftMargin = 50f;
 59             WordApp.Selection.PageSetup.RightMargin = 50f;
 60             WordApp.Selection.PageSetup.PageWidth = 650f;  //页面宽度 
 61 
 62             WordDoc.ActiveWindow.Selection.Font.Bold = 2;
 63 
 64             
 70             WordApp.Selection.ParagraphFormat.LineSpacing = 13f;//设置文档的行间距      
 71             //移动焦点并换行 
 72             object count = 14;
 73             object WdLine = Microsoft.Office.Interop.Word.WdUnits.wdLine;//换一行;
 74             WordApp.Selection.ParagraphFormat.LineSpacing = 18f;
 75             
 76             WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
 77             WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移动焦点 
 78             WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
 79             WordApp.Selection.TypeParagraph();//插入段落 
 80             WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
 81             WordApp.Selection.Font.Size = 18f;
 82 
 83             object missing = System.Reflection.Missing.Value;
 84             object count2 = 14;
 85             object WdLine2 = Microsoft.Office.Interop.Word.WdUnits.wdLine;//换一行;   
 86             WordApp.Selection.Text = "应 聘 报 名 表";
 87             WordApp.Selection.ParagraphFormat.LineSpacingRule = Microsoft.Office.Interop.Word.WdLineSpacing.wdLineSpaceSingle;//单倍行距
 88 
 89            
 90             WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
 91             WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移动焦点 
 92             WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
 93             WordApp.Selection.TypeParagraph();//插入段落 
 94             
 95             WordApp.Selection.Font.Size = 10.5f;
 96             WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
 97             WordApp.Selection.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorBlack;
 98 
 99             //文档中创建表格 
100             Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 19, 15, ref Nothing, ref Nothing);
101             //设置表格样式 
102             WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中 
103 
104             //设置表格框
105             newTable.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
106             newTable.Columns[1].Width = 25f;
107             newTable.Columns[2].Width = 30f;
108             newTable.Columns[3].Width = 25f;
109             newTable.Columns[4].Width = 45f;
110             newTable.Columns[5].Width = 25f;
111             newTable.Columns[6].Width = 25f;
112             newTable.Columns[7].Width = 35f;
113             newTable.Columns[8].Width = 40f;
114             newTable.Columns[9].Width = 35f;
115             newTable.Columns[10].Width = 15f;
116             newTable.Columns[11].Width = 45f;
117             newTable.Columns[12].Width = 30f;
118             newTable.Columns[13].Width = 40f;
119             newTable.Columns[14].Width = 50f;
120             newTable.Columns[15].Width = 90f;
121 
122             //填充表格内容 
123             for (int k = 1; k < 19; k++)
124             {
125                 newTable.Rows[k].Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
126             }
127             for (int k = 1; k < 15; k++)
128             {
129                 newTable.Columns[k].Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
130             }
131             //垂直居中
132             object unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;
133             object countjz = 1;
134             WordApp.Selection.MoveEnd(ref unit, ref countjz);
135             WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中 
136 
137             //填充表格内容 第一行
138             newTable.Cell(1, 1).Range.Text = "姓名";
139           //合并单元格 
140             newTable.Cell(1, 1).Merge(newTable.Cell(1, 2));
141             newTable.Cell(1, 2).Range.Text = dat.Rows[0]["name"].ToString();
142 
143             newTable.Cell(1, 2).Merge(newTable.Cell(1, 3));
144             newTable.Cell(1, 3).Range.Text = "性 别";
145             newTable.Cell(1, 3).Merge(newTable.Cell(1, 4));
146             newTable.Cell(1, 4).Range.Text = dat.Rows[0]["sex"].ToString();
147             newTable.Cell(1, 4).Merge(newTable.Cell(1, 5));
148             newTable.Cell(1, 5).Range.Text = "出  生日  期";
149             newTable.Cell(1, 5).Merge(newTable.Cell(1, 6));
150             if (dat.Rows[0]["createdate"].ToString().Equals(""))
151             {
152                 newTable.Cell(1, 6).Range.Text = "";
153             }
154             else
155             {
156                 newTable.Cell(1, 6).Range.Text = DateTime.Parse(dat.Rows[0]["createdate"].ToString()).ToString("yyyy-MM-dd");
157             }
158             newTable.Cell(1, 6).Merge(newTable.Cell(1, 7));
159             newTable.Cell(1, 7).Range.Text = "民 族";
160             newTable.Cell(1, 8).Range.Text = dat.Rows[0]["minzu"].ToString();
161 
162             newTable.Cell(1, 9).Merge(newTable.Cell(3, 15));
163             newTable.Cell(1, 9).Select();//选中一行 
164 
165             string FileName = "E:\\OA\\new\\web2\\upload\\" + dat.Rows[0]["touxiang"].ToString();
166             object LinkToFile = false;
167             object SaveWithDocument = true;
168             object Anchor = WordDoc.Application.Selection.Range;
169             WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);
170             WordDoc.Application.ActiveDocument.InlineShapes[1].Width = 72f;//图片宽度 
171             WordDoc.Application.ActiveDocument.InlineShapes[1].Height = 90f;//图片高 
172             WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
173 
174             // 填充表格内容 第二行
175             newTable.Cell(2, 1).Range.Text = "籍  贯";
176             newTable.Cell(2, 1).Merge(newTable.Cell(2, 2));
177             newTable.Cell(2, 2).Range.Text = dat.Rows[0]["jiguan"].ToString();
178             newTable.Cell(2, 2).Merge(newTable.Cell(2, 3));
179             newTable.Cell(2, 3).Range.Text = "出生地";
180             newTable.Cell(2, 3).Merge(newTable.Cell(2, 4));
181             newTable.Cell(2, 4).Range.Text = dat.Rows[0]["chushengdi"].ToString();
182             newTable.Cell(2, 4).Merge(newTable.Cell(2, 5));
183             newTable.Cell(2, 5).Range.Text = "户  口所在地";
184             newTable.Cell(2, 5).Merge(newTable.Cell(2, 6));
185             newTable.Cell(2, 6).Range.Text = dat.Rows[0]["hukouaddress"].ToString();
186             newTable.Cell(2, 6).Merge(newTable.Cell(2, 7));
187             newTable.Cell(2, 7).Range.Text = "身 高";
188             newTable.Cell(2, 8).Range.Text = dat.Rows[0]["shengao"].ToString();
189 
190 
191             //填充表格内容 第三行
192             newTable.Cell(3, 1).Range.Text = "政治面貌";
193             newTable.Cell(3, 1).Merge(newTable.Cell(3, 2));
194             newTable.Cell(3, 2).Range.Text = dat.Rows[0]["zhengzhi"].ToString();
195             newTable.Cell(3, 2).Merge(newTable.Cell(3, 3));
196             newTable.Cell(3, 3).Range.Text = "入   党时   间";
197             newTable.Cell(3, 3).Merge(newTable.Cell(3, 4));
198             if (dat.Rows[0]["rudangdate"].ToString().Equals(""))
199             {
200                 newTable.Cell(3, 4).Range.Text = "";
201             }
202             else
203             {
204                 newTable.Cell(3, 4).Range.Text = DateTime.Parse(dat.Rows[0]["rudangdate"].ToString()).ToString("yyyy-MM-dd");
205             }
206             newTable.Cell(3, 4).Merge(newTable.Cell(3, 5));
207             newTable.Cell(3, 5).Range.Text = "参加工作时间";
208             newTable.Cell(3, 5).Merge(newTable.Cell(3, 6));
209             if (dat.Rows[0]["canjiaworktime"].ToString().Equals(""))
210             {
211                 newTable.Cell(3, 6).Range.Text = "";
212             }
213             else
214             {
215                 newTable.Cell(3, 6).Range.Text = DateTime.Parse(dat.Rows[0]["canjiaworktime"].ToString()).ToString("yyyy-MM-dd");
216             }
217             newTable.Cell(3, 6).Merge(newTable.Cell(3, 7));
218             newTable.Cell(3, 7).Range.Text = "婚姻状况";
219             newTable.Cell(3, 8).Range.Text = dat.Rows[0]["hunyin"].ToString();
220 
221             //填充表格内容 第四行
222             newTable.Cell(4, 1).Range.Text = "移动电话";
223             newTable.Cell(4, 1).Merge(newTable.Cell(4, 2));
224             newTable.Cell(4, 2).Range.Text = dat.Rows[0]["phone"].ToString();
225             newTable.Cell(4, 2).Merge(newTable.Cell(4, 3));
226             newTable.Cell(4, 3).Range.Text = "其他联系方式";
227             newTable.Cell(4, 3).Merge(newTable.Cell(4, 4));
228             newTable.Cell(4, 4).Range.Text = dat.Rows[0]["qitalianxi"].ToString();
229             newTable.Cell(4, 4).Merge(newTable.Cell(4, 5));
230             newTable.Cell(4, 5).Range.Text = "E-mail";
231             newTable.Cell(4, 5).Merge(newTable.Cell(4, 6));
232             newTable.Cell(4, 6).Range.Text = dat.Rows[0]["email"].ToString();
233             newTable.Cell(4, 6).Merge(newTable.Cell(4, 8));
234             newTable.Cell(4, 7).Range.Text = "档  案所在地";
235             newTable.Cell(4, 8).Range.Text = dat.Rows[0]["danganaddress"].ToString();
236 
237             //填充表格内容 第五行
238             newTable.Cell(5, 1).Range.Text = " 身份证 号  码";
239             newTable.Cell(5, 1).Merge(newTable.Cell(5, 2));
240             newTable.Cell(5, 2).Range.Text = dat.Rows[0]["zhengjiannum"].ToString();
241             newTable.Cell(5, 2).Merge(newTable.Cell(5, 7));
242             newTable.Cell(5, 3).Range.Text = "是否曾投递简历到XXXXXX:(如果是,请注明投递时间)";
243             newTable.Cell(5, 3).Merge(newTable.Cell(5, 8));
244             newTable.Cell(5, 4).Range.Text = dat.Rows[0]["ifcengtoudi"].ToString();
245 
246 
247             //填充表格内容 第六行
248             newTable.Cell(6, 1).Range.Text = "家庭住址";
249             newTable.Cell(6, 1).Merge(newTable.Cell(6, 2));
250             newTable.Cell(6, 2).Range.Text = dat.Rows[0]["tongxunaddress"].ToString();
251             newTable.Cell(6, 2).Merge(newTable.Cell(6, 6));
252             newTable.Cell(6, 3).Range.Text = "驾龄";
253             newTable.Cell(6, 4).Range.Text = dat.Rows[0]["jialing"].ToString();
254             newTable.Cell(6, 5).Range.Text = "外语种类及熟练程度";
255             newTable.Cell(6, 5).Merge(newTable.Cell(6, 6));
256             newTable.Cell(6, 6).Range.Text = dat.Rows[0]["waiyu"].ToString();
257             newTable.Cell(6, 6).Merge(newTable.Cell(6, 7));
258             newTable.Cell(6, 7).Range.Text = "微机操作能力";
259             newTable.Cell(6, 8).Range.Text = dat.Rows[0]["weiji"].ToString();
260 
261             //填充表格内容 第七行
262             newTable.Cell(7, 1).Range.Text = "收到录用通知后可到岗时间";
263             newTable.Cell(7, 1).Merge(newTable.Cell(7, 6));
264             if (dat.Rows[0]["daogangdate"].ToString().Equals("三天内"))
265             {
266                 newTable.Cell(7, 2).Range.Text = " □三天内        √一周内      □两周内      □一个月内 ";
267 
268             }
269             if (dat.Rows[0]["daogangdate"].ToString().Equals("一周内"))
270             {
271                 newTable.Cell(7, 2).Range.Text = " □三天内        √一周内      □两周内      □一个月内 ";
272 
273             }
274             if (dat.Rows[0]["daogangdate"].ToString().Equals("两周内"))
275             {
276                 newTable.Cell(7, 2).Range.Text = " □三天内        □一周内      √两周内      □一个月内 ";
277 
278             }
279             if (dat.Rows[0]["daogangdate"].ToString().Equals("一个月内"))
280             {
281                 newTable.Cell(7, 2).Range.Text = " □三天内        □一周内      □两周内      √一个月内 ";
282 
283             }
284             newTable.Cell(7, 2).Merge(newTable.Cell(7, 10));
285             newTable.Cell(7, 1).Select();//选中一行 
286             WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
287             //填充表格内容 第八行
288             newTable.Cell(8, 1).Range.Text = "应聘信息来  源";
289             newTable.Cell(8, 1).Merge(newTable.Cell(8, 2));
290 
291 
292             if (dat.Rows[0]["xinxilaiyuan"].ToString().Equals("华商报无忧招聘"))
293             {
294                 newTable.Cell(8, 2).Range.Text = "√华商报无忧招聘   □中华英才网  □智联招聘   □其他(                    )";
295             }
296             if (dat.Rows[0]["xinxilaiyuan"].ToString().Equals("中华英才网"))
297             {
298                 newTable.Cell(8, 2).Range.Text = "□华商报无忧招聘   √中华英才网  □智联招聘   □其他(                    )";
299             }
300             if (dat.Rows[0]["xinxilaiyuan"].ToString().Equals("智联招聘"))
301             {
302                 newTable.Cell(8, 2).Range.Text = "□华商报无忧招聘   □中华英才网  √智联招聘   □其他(                    )";
303             }
304             if (dat.Rows[0]["xinxilaiyuan"].ToString().Equals("其他"))
305             {
306                 newTable.Cell(8, 2).Range.Text = "□华商报无忧招聘   □中华英才网  □智联招聘   √其他(                    )";
307             }
308             newTable.Cell(8, 2).Merge(newTable.Cell(8, 14));
309 
310             //填充表格内容 第九行
311             newTable.Cell(9, 1).Range.Text = "工作意向";
312             newTable.Cell(9, 1).Merge(newTable.Cell(9, 2));
313 
314 
315             newTable.Cell(9, 1).Merge(newTable.Cell(10, 2));
316 
317             newTable.Cell(9, 2).Range.Text = "期望的工作岗位及职务:" + dat.Rows[0]["qiwangwork"].ToString();
318             newTable.Cell(9, 2).Merge(newTable.Cell(9, 14));
319             newTable.Cell(9, 2).Select();//选中一行 
320             WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
321             //填充表格内容 第十行
322 
323             newTable.Cell(10, 2).Range.Text = "期望薪资待遇:" + dat.Rows[0]["qiwangmoney"].ToString();
324             newTable.Cell(10, 2).Merge(newTable.Cell(10, 14));
325             newTable.Cell(10, 2).Select();//选中一行 
326             WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
327 
328             //填充表格内容 第十一行
329 
330             newTable.Cell(11, 1).Range.Text = "教育背景";
331             newTable.Cell(11, 1).Merge(newTable.Cell(18, 1));
332             newTable.Cell(11, 2).Range.Text = "说  明";
333             newTable.Cell(11, 2).Merge(newTable.Cell(11, 3));
334             newTable.Cell(11, 3).Range.Text = "学习方式:1.统招;2.电大、夜大、函授、自考、成人(教育部承认学历);3.党校;                       请在“学习方式”一栏中填入。如无此教育背景则对应行信息不填。";
335             newTable.Cell(11, 3).Merge(newTable.Cell(11, 14));
336 
337 
338             //填充表格内容 第十二行
339 
340             newTable.Cell(12, 2).Range.Text = "学  历";
341             newTable.Cell(12, 2).Merge(newTable.Cell(12, 3));
342             newTable.Cell(12, 3).Range.Text = "学 位";
343             newTable.Cell(12, 3).Merge(newTable.Cell(12, 5));
344             newTable.Cell(12, 4).Range.Text = "学习方式";
345             newTable.Cell(12, 5).Range.Text = "毕业院校";
346             newTable.Cell(12, 5).Merge(newTable.Cell(12, 8));
347             newTable.Cell(12, 6).Range.Text = "专 业";
348             newTable.Cell(12, 6).Merge(newTable.Cell(12, 7));
349             newTable.Cell(12, 7).Range.Text = "就读起止时间";
350             newTable.Cell(12, 7).Merge(newTable.Cell(12, 8));
351 
352             //填充表格内容 第13行
353             newTable.Cell(13, 2).Range.Text = "高  中/中  专";
354             newTable.Cell(13, 2).Merge(newTable.Cell(13, 3));
355             if (getXueLi("高中").Rows.Count > 0)
356             {
357                 System.Data.DataRow dr = getXueLi("高中").Rows[0];
358                 newTable.Cell(13, 3).Range.Text = dr["xuewei"].ToString();
359                 newTable.Cell(13, 3).Merge(newTable.Cell(13, 5));
360                 newTable.Cell(13, 4).Range.Text = dr["xuexifs"].ToString();
361                 newTable.Cell(13, 5).Range.Text = dr["xuexiaoname"].ToString();
362                 newTable.Cell(13, 5).Merge(newTable.Cell(13, 8));
363                 newTable.Cell(13, 6).Range.Text = dr["zhuanye"].ToString();
364                 newTable.Cell(13, 6).Merge(newTable.Cell(13, 7));
365                 newTable.Cell(13, 7).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM")
366                     + "" + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM");
367 
368                 newTable.Cell(13, 7).Merge(newTable.Cell(13, 8));
369             }
370             else
371             {
372                 newTable.Cell(13, 3).Range.Text = "";
373                 newTable.Cell(13, 3).Merge(newTable.Cell(13, 5));
374                 newTable.Cell(13, 4).Range.Text = "";
375                 newTable.Cell(13, 5).Range.Text = "";
376                 newTable.Cell(13, 5).Merge(newTable.Cell(13, 8));
377                 newTable.Cell(13, 6).Range.Text = "";
378                 newTable.Cell(13, 6).Merge(newTable.Cell(13, 7));
379                 newTable.Cell(13, 7).Range.Text = "";
380                 newTable.Cell(13, 7).Merge(newTable.Cell(13, 8));
381             }
382 
383 
384 
385             //填充表格内容 第14行
386 
387             newTable.Cell(14, 2).Range.Text = "大  专";
388             newTable.Cell(14, 2).Merge(newTable.Cell(14, 3));
389             newTable.Cell(14, 2).Select();//选中一行 
390             WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
391             if (getXueLi("大专").Rows.Count > 0)
392             {
393                 System.Data.DataRow dr = getXueLi("大专").Rows[0];
394                 newTable.Cell(14, 3).Range.Text = dr["xuewei"].ToString();
395                 newTable.Cell(14, 3).Merge(newTable.Cell(14, 5));
396                 newTable.Cell(14, 4).Range.Text = dr["xuexifs"].ToString();
397                 newTable.Cell(14, 5).Range.Text = dr["xuexiaoname"].ToString();
398                 newTable.Cell(14, 5).Merge(newTable.Cell(14, 8));
399                 newTable.Cell(14, 6).Range.Text = dr["zhuanye"].ToString();
400                 newTable.Cell(14, 6).Merge(newTable.Cell(14, 7));
401                 newTable.Cell(14, 7).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM")
402                     + "" + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM");
403                 newTable.Cell(14, 7).Merge(newTable.Cell(14, 8));
404             }
405             else
406             {
407                 newTable.Cell(14, 3).Range.Text = "";
408                 newTable.Cell(14, 3).Merge(newTable.Cell(14, 5));
409                 newTable.Cell(14, 4).Range.Text = "";
410                 newTable.Cell(14, 5).Range.Text = "";
411                 newTable.Cell(14, 5).Merge(newTable.Cell(14, 8));
412                 newTable.Cell(14, 6).Range.Text = "";
413                 newTable.Cell(14, 6).Merge(newTable.Cell(14, 7));
414                 newTable.Cell(14, 7).Range.Text = "";
415                 newTable.Cell(14, 7).Merge(newTable.Cell(14, 8));
416             }
417 
418 
419 
420             //填充表格内容 第15行
421 
422             newTable.Cell(15, 2).Range.Text = "本  科";
423             newTable.Cell(15, 2).Merge(newTable.Cell(15, 3));
424             newTable.Cell(15, 2).Select();//选中一行 
425             WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
426             if (getXueLi("本科").Rows.Count > 0)
427             {
428                 System.Data.DataRow dr = getXueLi("本科").Rows[0];
429                 newTable.Cell(15, 3).Range.Text = dr["xuewei"].ToString();
430                 newTable.Cell(15, 3).Merge(newTable.Cell(15, 5));
431                 newTable.Cell(15, 4).Range.Text = dr["xuexifs"].ToString();
432                 newTable.Cell(15, 5).Range.Text = dr["xuexiaoname"].ToString();
433                 newTable.Cell(15, 5).Merge(newTable.Cell(15, 8));
434                 newTable.Cell(15, 6).Range.Text = dr["zhuanye"].ToString();
435                 newTable.Cell(15, 6).Merge(newTable.Cell(15, 7));
436                 newTable.Cell(15, 7).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM") +
437                     "" + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM");
438                 newTable.Cell(15, 7).Merge(newTable.Cell(15, 8));
439             }
440             else
441             {
442                 newTable.Cell(15, 3).Range.Text = "";
443                 newTable.Cell(15, 3).Merge(newTable.Cell(15, 5));
444                 newTable.Cell(15, 4).Range.Text = "";
445                 newTable.Cell(15, 5).Range.Text = "";
446                 newTable.Cell(15, 5).Merge(newTable.Cell(15, 8));
447                 newTable.Cell(15, 6).Range.Text = "";
448                 newTable.Cell(15, 6).Merge(newTable.Cell(15, 7));
449                 newTable.Cell(15, 7).Range.Text = "";
450                 newTable.Cell(15, 7).Merge(newTable.Cell(15, 8));
451             }
452 
453 
454             //填充表格内容 第16行
455 
456             newTable.Cell(16, 2).Range.Text = "第二学士    学位班";
457             newTable.Cell(16, 2).Merge(newTable.Cell(16, 3));
458             if (getXueLi("第二学士学位班").Rows.Count > 0)
459             {
460                 System.Data.DataRow dr = getXueLi("第二学士学位班").Rows[0];
461                 newTable.Cell(16, 3).Range.Text = dr["xuewei"].ToString();
462                 newTable.Cell(16, 3).Merge(newTable.Cell(16, 5));
463                 newTable.Cell(16, 4).Range.Text = dr["xuexifs"].ToString();
464                 newTable.Cell(16, 5).Range.Text = dr["xuexiaoname"].ToString();
465                 newTable.Cell(16, 5).Merge(newTable.Cell(16, 8));
466                 newTable.Cell(16, 6).Range.Text = dr["zhuanye"].ToString();
467                 newTable.Cell(16, 6).Merge(newTable.Cell(16, 7));
468                 newTable.Cell(16, 7).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM") +
469                     "" + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM");
470                 newTable.Cell(16, 7).Merge(newTable.Cell(16, 8));
471 
472 
473             }
474             else
475             {
476                 newTable.Cell(16, 3).Range.Text = "";
477                 newTable.Cell(16, 3).Merge(newTable.Cell(16, 5));
478                 newTable.Cell(16, 4).Range.Text = "";
479                 newTable.Cell(16, 5).Range.Text = "";
480                 newTable.Cell(16, 5).Merge(newTable.Cell(16, 8));
481                 newTable.Cell(16, 6).Range.Text = "";
482                 newTable.Cell(16, 6).Merge(newTable.Cell(16, 7));
483                 newTable.Cell(16, 7).Range.Text = "";
484                 newTable.Cell(16, 7).Merge(newTable.Cell(16, 8));
485             }
486 
487 
488             //填充表格内容 第17行
489 
490             newTable.Cell(17, 2).Range.Text = "硕  士        研究生";
491             newTable.Cell(17, 2).Merge(newTable.Cell(17, 3));
492             if (getXueLi("硕士研究生").Rows.Count > 0)
493             {
494                 System.Data.DataRow dr = getXueLi("硕士研究生").Rows[0];
495                 newTable.Cell(17, 3).Range.Text = dr["xuewei"].ToString();
496                 newTable.Cell(17, 3).Merge(newTable.Cell(17, 5));
497                 newTable.Cell(17, 4).Range.Text = dr["xuexifs"].ToString();
498                 newTable.Cell(17, 5).Range.Text = dr["xuexiaoname"].ToString();
499                 newTable.Cell(17, 5).Merge(newTable.Cell(17, 8));
500                 newTable.Cell(17, 6).Range.Text = dr["zhuanye"].ToString();
501                 newTable.Cell(17, 6).Merge(newTable.Cell(17, 7));
502                 newTable.Cell(17, 7).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM") +
503                     "" + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM");
504                 newTable.Cell(17, 7).Merge(newTable.Cell(17, 8));
505 
506 
507             }
508             else
509             {
510                 newTable.Cell(17, 3).Range.Text = "";
511                 newTable.Cell(17, 3).Merge(newTable.Cell(17, 5));
512                 newTable.Cell(17, 4).Range.Text = "";
513                 newTable.Cell(17, 5).Range.Text = "";
514                 newTable.Cell(17, 5).Merge(newTable.Cell(17, 8));
515                 newTable.Cell(17, 6).Range.Text = "";
516                 newTable.Cell(17, 6).Merge(newTable.Cell(17, 7));
517                 newTable.Cell(17, 7).Range.Text = "";
518                 newTable.Cell(17, 7).Merge(newTable.Cell(17, 8));
519             }
520 
521 
522             //    填充表格内容 第18行
523 
524             newTable.Cell(18, 2).Range.Text = "博  士        研究生";
525             newTable.Cell(18, 2).Merge(newTable.Cell(18, 3));
526             if (getXueLi("博士研究生").Rows.Count > 0)
527             {
528                 System.Data.DataRow dr = getXueLi("博士研究生").Rows[0];
529                 newTable.Cell(18, 3).Range.Text = dr["xuewei"].ToString();
530                 newTable.Cell(18, 3).Merge(newTable.Cell(18, 5));
531                 newTable.Cell(18, 4).Range.Text = dr["xuexifs"].ToString();
532                 newTable.Cell(18, 5).Range.Text = dr["xuexiaoname"].ToString();
533                 newTable.Cell(18, 5).Merge(newTable.Cell(18, 8));
534                 newTable.Cell(18, 6).Range.Text = dr["zhuanye"].ToString();
535                 newTable.Cell(18, 6).Merge(newTable.Cell(18, 7));
536                 newTable.Cell(18, 7).Range.Text = DateTime.Parse(dr["t1"].ToString()).ToString("yyyy.MM") +
537                      "" + DateTime.Parse(dr["t2"].ToString()).ToString("yyyy.MM");
538                 newTable.Cell(18, 7).Merge(newTable.Cell(18, 8));
539 
540 
541             }
542             else
543             {
544                 newTable.Cell(18, 3).Range.Text = "";
545                 newTable.Cell(18, 3).Merge(newTable.Cell(18, 5));
546                 newTable.Cell(18, 4).Range.Text = "";
547                 newTable.Cell(18, 5).Range.Text = "";
548                 newTable.Cell(18, 5).Merge(newTable.Cell(18, 8));
549                 newTable.Cell(18, 6).Range.Text = "";
550                 newTable.Cell(18, 6).Merge(newTable.Cell(18, 7));
551                 newTable.Cell(18, 7).Range.Text = "";
552                 newTable.Cell(18, 7).Merge(newTable.Cell(18, 8));
553             }
554 
555 
556             //    填充表格内容 第19行
557 
558             newTable.Cell(19, 1).Range.Text = "技术职称";
559             newTable.Cell(19, 1).Merge(newTable.Cell(19, 2));
560             newTable.Cell(19, 2).Range.Text = dat.Rows[0]["zhicheng"].ToString();
561             newTable.Cell(19, 2).Merge(newTable.Cell(19, 5));
562             newTable.Cell(19, 3).Range.Text = "职业资格";
563             newTable.Cell(19, 3).Merge(newTable.Cell(19, 4));
564             newTable.Cell(19, 4).Range.Text = dat.Rows[0]["renzhizige"].ToString();
565             newTable.Cell(19, 4).Merge(newTable.Cell(19, 6));
566             newTable.Cell(19, 5).Range.Text = "其他资质及培训证书等";
567             newTable.Cell(19, 5).Merge(newTable.Cell(19, 6));
568             newTable.Cell(19, 6).Range.Text = dat.Rows[0]["zhengshu"].ToString();
569             newTable.Cell(19, 6).Merge(newTable.Cell(19, 7));
570 
571 
572             WordApp.ActiveDocument.PageSetup.SectionStart = Microsoft.Office.Interop.Word.WdSectionStart.wdSectionNewPage;//节的起始位置:新建页
573 
574             newTable.Cell(19, 1).Select();//选中一行 
575             //  WordApp.Selection.ParagraphFormat.LineSpacing = 25f; 
576             object missing1 = System.Reflection.Missing.Value;
577             object count1 = 20;
578             object WdLine1 = Microsoft.Office.Interop.Word.WdUnits.wdLine;//换一行;   
579             WordApp.Selection.MoveDown(ref WdLine1, ref count1, ref missing1);//光标向下移1行   
580             WordApp.Selection.MoveDown(ref WdLine1, ref count1, ref missing1);//光标向下移1行   
581             WordApp.Selection.TypeParagraph();//在表格外回车  
582            583 
584             //文档中创建表格 
585             Microsoft.Office.Interop.Word.Table newTable1 = WordDoc.Tables.Add(WordApp.Selection.Range, 17, 9, ref Nothing, ref Nothing);
586           587            588             //设置表格框
589             newTable1.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
590             newTable1.Columns[1].Width = 25f;
591             newTable1.Columns[2].Width = 40f;
592             newTable1.Columns[3].Width = 40f;
593             newTable1.Columns[4].Width = 30f;
594             newTable1.Columns[5].Width = 50f;
595             newTable1.Columns[6].Width = 70f;
596             newTable1.Columns[7].Width = 70f;
597             newTable1.Columns[8].Width = 130f;
598             newTable1.Columns[9].Width = 90f;
599 
600             newTable1.Cell(1, 1).Range.Bold = 2;//设置单元格中字体为粗体 
601 
602             WordApp.Selection.ParagraphFormat.LineSpacing = 10.5f;
603 
604             WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中 
605             WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中 
606             //填充表格内容 
607             for (int i = 1; i < 15; i++)
608             {
609                 newTable1.Rows.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
610 
611             }
612             for (int i = 1; i < 9; i++)
613             {
614                 newTable1.Columns.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
615 
616             }
617 
618           
621             WordApp.Selection.MoveEnd(ref unit, ref countjz);
622             WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中 
623 
624 
625             //填充表格内容 第1行
626             newTable1.Cell(1, 1).Range.Text = "工作经历";
627             newTable1.Cell(1, 1).Merge(newTable1.Cell(8, 1));
628             newTable1.Cell(1, 2).Range.Text = "说  明";
629             newTable1.Cell(1, 2).Merge(newTable1.Cell(1, 3));
630             newTable1.Cell(1, 3).Range.Text = "1、请按工作时间由近至远(倒序)填写;                                                    2、如在同一家公司因岗位、级别、地点发生变化请予以证明,详细填写。";
631             newTable1.Cell(1, 3).Merge(newTable1.Cell(1, 8));
632 
633             //填充表格内容 第2行
634             newTable1.Cell(2, 2).Range.Text = "起止时间 (精确到月)";
635             newTable1.Cell(2, 2).Merge(newTable1.Cell(2, 4));
636             newTable1.Cell(2, 3).Range.Text = "单位名称";
637             newTable1.Cell(2, 3).Merge(newTable1.Cell(2, 4));
638             newTable1.Cell(2, 4).Range.Text = "岗 位/职 务";
639             newTable1.Cell(2, 5).Range.Text = "主要职责(20字以内)";
640             newTable1.Cell(2, 6).Range.Text = "证明人/联系方式";
641 
642             string sqlgz = "select  * from hr_quanzhigongzuo where  id in ( select top 6 " +
643            "  id from hr_quanzhigongzuo where uid='" + uid + "'   order by id desc )  order by id asc ";
644             DataTable datgz = ZWL.DBUtility.MyDBHelp.GetDataTable(sqlgz);
645             if (datgz.Rows.Count > 0)
646             {
647 
648                 for (int i = 0; i < datgz.Rows.Count; i++)
649                 {
650                     newTable1.Cell(i + 3, 2).Range.Text = DateTime.Parse(datgz.Rows["t1"].ToString()).ToString("yyyy.MM") + "" +
651                         DateTime.Parse(datgz.Rows["t2"].ToString()).ToString("yyyy.MM");
652                     newTable1.Cell(i + 3, 2).Merge(newTable1.Cell(i + 3, 4));
653                     newTable1.Cell(i + 3, 3).Range.Text = datgz.Rows["gongzuodanwei"].ToString();
654                     newTable1.Cell(i + 3, 3).Merge(newTable1.Cell(i + 3, 4));
655                     newTable1.Cell(i + 3, 4).Range.Text = datgz.Rows["zhiwu"].ToString();
656                     newTable1.Cell(i + 3, 5).Range.Text = datgz.Rows["zhuyao"].ToString();
657                     newTable1.Cell(i + 3, 6).Range.Text = datgz.Rows["zhengming"].ToString();
658                 }
659 
660                 for (int i = datgz.Rows.Count + 3; i < 9; i++)
661                 {
662                     newTable1.Cell(i, 2).Range.Text = "";
663                     newTable1.Cell(i, 2).Merge(newTable1.Cell(i, 4));
664                     newTable1.Cell(i, 2).Select();//选中一行 
665                     WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
666                     newTable1.Cell(i, 3).Range.Text = "";
667                     newTable1.Cell(i, 3).Merge(newTable1.Cell(i, 4));
668                     newTable1.Cell(i, 4).Range.Text = "";
669                     newTable1.Cell(i, 5).Range.Text = "";
670                     newTable1.Cell(i, 6).Range.Text = "";
671                 }
672 
673             }
674             else
675             {
676                 for (int i = 3; i < 9; i++)
677                 {
678                     newTable1.Cell(i, 2).Range.Text = "";
679                     newTable1.Cell(i, 2).Merge(newTable1.Cell(i, 4));
680                     newTable1.Cell(i, 2).Select();//选中一行 
681                     WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
682                     newTable1.Cell(i, 3).Range.Text = "";
683                     newTable1.Cell(i, 3).Merge(newTable1.Cell(i, 4));
684                     newTable1.Cell(i, 4).Range.Text = "";
685                     newTable1.Cell(i, 5).Range.Text = "";
686                     newTable1.Cell(i, 6).Range.Text = "";
687                 }
688 
689             }
690 
691             //填充表格内容 第9行
692             newTable1.Cell(9, 1).Range.Text = "家庭成员";
693             newTable1.Cell(9, 1).Merge(newTable1.Cell(12, 1));
694             newTable1.Cell(9, 2).Range.Text = "关  系";
695             newTable1.Cell(9, 2).Merge(newTable1.Cell(9, 4));
696             newTable1.Cell(9, 2).Select();//选中一行 
697             WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
698             //WordApp.Selection.MoveDown(ref WdLine1, ref count1, ref missing1);//光标向下移1行   
699 
700 
701 
702             newTable1.Cell(9, 3).Range.Text = "姓  名";
703             newTable1.Cell(9, 4).Range.Text = "出生日期";
704             newTable1.Cell(9, 5).Range.Text = "政治面貌";
705             newTable1.Cell(9, 6).Range.Text = "工作单位及职务(如退休填写退休前单位)";
706             newTable1.Cell(9, 6).Merge(newTable1.Cell(9, 7));
707 
708             string sqljt = " select top 3  * from hr_jiating where uid='" + uid + "'     ";
709             DataTable datjt = ZWL.DBUtility.MyDBHelp.GetDataTable(sqljt);
710 
711             if (datjt.Rows.Count > 0)
712             {
713 
714                 for (int i = 0; i < datjt.Rows.Count; i++)
715                 {
716                     newTable1.Cell(i + 10, 2).Range.Text = datjt.Rows["guanli"].ToString();
717                     newTable1.Cell(i + 10, 2).Merge(newTable1.Cell(i + 10, 4));
718                     newTable1.Cell(i + 10, 2).Select();//选中一行 
719                     WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
720                     newTable1.Cell(i + 10, 3).Range.Text = datjt.Rows["name"].ToString();
721                     newTable1.Cell(i + 10, 4).Range.Text = DateTime.Parse(datjt.Rows["createdate"].ToString()).ToString("yyyy.MM");
722                     newTable1.Cell(i + 10, 5).Range.Text = datjt.Rows["zhengzhi"].ToString();
723                     newTable1.Cell(i + 10, 6).Range.Text = datjt.Rows["gongzuodanwei"].ToString();
724                     newTable1.Cell(i + 10, 6).Merge(newTable1.Cell(i + 10, 7));
725                 }
726 
727                 for (int i = datjt.Rows.Count + 10; i < 13; i++)
728                 {
729                     newTable1.Cell(i, 2).Range.Text = "";
730                     newTable1.Cell(i, 2).Merge(newTable1.Cell(i, 4));
731                     newTable1.Cell(i, 2).Select();//选中一行 
732                     WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
733                     newTable1.Cell(i, 3).Range.Text = "";
734                     newTable1.Cell(i, 4).Range.Text = "";
735                     newTable1.Cell(i, 5).Range.Text = "";
736                     newTable1.Cell(i, 6).Range.Text = "";
737                     newTable1.Cell(i, 6).Merge(newTable1.Cell(i, 7));
738                 }
739 
740             }
741             else
742             {
743                 for (int i = 10; i < 13; i++)
744                 {
745                     newTable1.Cell(i, 2).Range.Text = "";
746                     newTable1.Cell(i, 2).Merge(newTable1.Cell(i, 4));
747                     newTable1.Cell(i, 2).Select();//选中一行 
748                     WordApp.Selection.ParagraphFormat.LineSpacing = 25f;
749                     newTable1.Cell(i, 3).Range.Text = "";
750                     newTable1.Cell(i, 4).Range.Text = "";
751                     newTable1.Cell(i, 5).Range.Text = "";
752                     newTable1.Cell(i, 6).Range.Text = "";
753                     newTable1.Cell(i, 6).Merge(newTable1.Cell(i, 7));
754                 }
755 
756             }
757 
758             //填充表格内容 第13行
759             newTable1.Cell(13, 1).Range.Text = "自我鉴定";
760             newTable1.Cell(13, 2).Range.Text = dat.Rows[0]["jianding"].ToString();
761             newTable1.Cell(13, 2).Merge(newTable1.Cell(13, 9));
762 
763             //填充表格内容 第14行
764             newTable1.Cell(14, 1).Range.Text = "劳动合同签订情况";
765             newTable1.Cell(14, 1).Merge(newTable1.Cell(14, 4));
766             if (dat.Rows[0]["iflizhi"].ToString().Equals("1"))
767             {
768                 newTable1.Cell(14, 2).Range.Text = "√目前与其他单位不存在劳动关系;                                           " +
769                     "□目前与原单位尚未解除劳动合同,但承诺最迟在到岗时可以提供解除劳动合同证明;" +
770                     "□其他(请说明)";
771             }
772             else if (dat.Rows[0]["iflizhi"].ToString().Equals("2"))
773             {
774                 newTable1.Cell(14, 2).Range.Text = "□目前与其他单位不存在劳动关系;                                           " +
775                     "√目前与原单位尚未解除劳动合同,但承诺最迟在到岗时可以提供解除劳动合同证明;" +
776                     "□其他(请说明)";
777             }
778             else
779             {
780                 newTable1.Cell(14, 2).Range.Text = "□目前与其他单位不存在劳动关系;                                           " +
781                     "□目前与原单位尚未解除劳动合同,但承诺最迟在到岗时可以提供解除劳动合同证明;" +
782                     "√其他(" + dat.Rows[0]["iflizhi"].ToString() + ")";
783             }
784             newTable1.Cell(14, 2).Merge(newTable1.Cell(14, 6));
785 
786             string sqlyp = " select date from hr_yingpin where uid = '" + uid + "'";
787             string nian = "";
788             DataTable datyp = ZWL.DBUtility.MyDBHelp.GetDataTable(sqlyp);
789             if (datyp.Rows.Count > 0)
790             {
791                 nian = DateTime.Parse(datyp.Rows[0]["date"].ToString()).ToString("yyyy年MM月dd日");
792             }
793             //填充表格内容 第15行
794             newTable1.Cell(15, 1).Range.Text = "个人声明";
795             newTable1.Cell(15, 1).Merge(newTable1.Cell(15, 2));
796             newTable1.Cell(15, 1).Merge(newTable1.Cell(17, 2));
797             newTable1.Cell(15, 2).Range.Text = "    本人郑重声明,我在上述表中提的有关信息真实准确,并愿意承担因任何虚假与不实造成的一切后果;本人同意可在必要的情况下对有关信息进行核实。";
798             newTable1.Cell(15, 2).Merge(newTable1.Cell(15, 8));
799 
800             //填充表格内容 第16行
801 
802             newTable1.Cell(16, 2).Range.Text = "     此外,我清楚以下事实:如果在30天内没有接到面试通知,本次申请可能失效,个人简历将进入公司人才库,不予退回。";
803             newTable1.Cell(16, 2).Merge(newTable1.Cell(16, 8));
804 
805             //填充表格内容 第17行
806 
807             newTable1.Cell(17, 2).Range.Text = "                                         应聘者签名:" + dat.Rows[0]["name"].ToString() + "              " + nian;
808             newTable1.Cell(17, 2).Merge(newTable1.Cell(17, 8));
809 
810             object saveOption = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
811             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);
812             WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
813             WordApp.Application.Quit(ref saveOption, ref Nothing, ref Nothing);
814             WordDoc = null;
815             WordApp = null;
816             killAllProcess();
817             message = name + "文档生成成功,";
818         //}
819         //catch
820         //{
821         //    message = "文件导出异常!";
822         //}
823         return message;
824     }
825     public DataTable getXueLi(string xueli)
826     {
827         string sql = "select * from hr_jiaoyu where  uid='" + dat.Rows[0]["id"].ToString() + "' and xueli ='" + xueli + "'  ";
828         DataTable datxue = ZWL.DBUtility.MyDBHelp.GetDataTable(sql);
829         return datxue;
830     }
831     protected void killAllProcess() // 杀掉所有winword.exe进程 
832     {
833         System.Diagnostics.Process[] myPs;
834         myPs = System.Diagnostics.Process.GetProcesses();
835         foreach (System.Diagnostics.Process p in myPs)
836         {
837             if (p.Id != 0)
838             {
839                 string myS = "WINWORD.EXE" + p.ProcessName + " ID:" + p.Id.ToString();
840                 try
841                 {
842                     if (p.Modules != null)
843                         if (p.Modules.Count > 0)
844                         {
845                             System.Diagnostics.ProcessModule pm = p.Modules[0];
846                             myS += "\n Modules[0].FileName:" + pm.FileName;
847                             myS += "\n Modules[0].ModuleName:" + pm.ModuleName;
848                             myS += "\n Modules[0].FileVersionInfo:\n" + pm.FileVersionInfo.ToString();
849                             if (pm.ModuleName.ToLower() == "winword.exe")
850                                 p.Kill();
851                         }
852                 }
853                 catch
854                 { }
855                 finally
856                 {
857                 }
858             }
859         }
860     }
861     public bool IsReusable
862     {
863         get
864         {
865             return false;
866         }
867     }
868 
869 }

调用方法:

 1 private void Export(string id)
 2     {
 3         string wjname =DateTime.Now.ToString("yyyyMMddhhmmssfff");
 4         string filepath = Server.MapPath("./ReportFile/") + wjname;
 5         Directory.CreateDirectory(filepath);  //创建文件所在目录 
 6         ExportWord dao = new ExportWord();
 7         if (id.IndexOf(',') > -1)
 8         {
 9 
10             string[] strs = id.Split(',');
11             for (int i = 0; i < strs.Length; i++)
12             {
13                 string sql = " select name from hr_person where id =" + strs;
14                 DataTable dat = ZWL.DBUtility.MyDBHelp.GetDataTable(sql);
15                 dao.ProcessRequest(Context, strs, filepath + "/" + dat.Rows[0]["name"].ToString() +i+ ".doc");
16             }
17              //多个ID,所以这边调用压缩方法
18             DirectoryToZip(filepath, Server.MapPath("./ReportFile/" + wjname + ".zip"));
19             Response.Write("<script>window.location='ReportFile/" + wjname + ".zip'</script>");
20 
21         }
22         else
23         {
24             string sql = " select name from hr_person where id =" + id;
25             DataTable dat = ZWL.DBUtility.MyDBHelp.GetDataTable(sql);
26             dao.ProcessRequest(Context, id, filepath + "/"  +dat.Rows[0]["name"].ToString() + ".doc");
27             Response.Write("<script>window.location='ReportFile/" + wjname+"/" + dat.Rows[0]["name"].ToString() + ".doc'</script>");
28 
29         }
30 
31     }
32     //【filepath想要压缩文件的地址】
33     //【zippath输出压缩文件的地址】
34     private void DirectoryToZip(string path, string address)
35     {
36         //获取当前文件夹中所有的文件
37         string[] filenames = Directory.GetFiles(path);
38         Crc32 crc = new Crc32();
39         //创建输出文件(ZIP格式的文件)
40         ZipOutputStream zos = new ZipOutputStream(File.Create(address));
41         zos.SetLevel(6);
42         //遍历所有的文件
43         foreach (string name in filenames)
44         {
45             FileStream fs = File.OpenRead(name);
46             byte[] buffer = new byte[fs.Length];
47             //读取文件
48             fs.Read(buffer, 0, Convert.ToInt32(fs.Length));
49             //获取文件的文件名称和后缀名
50             string file = Path.GetFileName(name);
51             //输出文件的名称
52             ZipEntry entry = new ZipEntry(file);
53             crc.Reset();
54             crc.Update(buffer);
55             entry.Crc = crc.Value;
56             zos.PutNextEntry(entry);
57             zos.Write(buffer, 0, Convert.ToInt32(fs.Length));
58             fs.Close();
59         }
60         zos.Finish();
61         zos.Close();
62     }

有什么问大家可以讨论,讨论,我也只是研究了一周,有许多都是 ,网上找其他人的,代码是长了点,但是只要把前面的看懂了就行,后面的只是重复前面的代码,效果如图片

 

posted on 2014-10-10 11:17  流编程风  阅读(4738)  评论(20编辑  收藏  举报