日期:2014-05-18 浏览次数:21183 次
/// <summary> /// 导出Word /// </summary> /// <param name="dt">导出的数据DataTable</param> /// <param name="isColname">是否显示列名</param> public static void OutPutWordDT(DataTable dt, bool isColname) { Object Nothing = System.Reflection.Missing.Value; Word.Application oword = new Word.Application();//word Application Word.Document odoc = oword.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);//文档 odoc.Paragraphs.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; try { //在word以表格形式存储数据 Word.Table otable = odoc.Tables.Add(oword.Selection.Range, dt.Rows.Count + 1, dt.Columns.Count, ref Nothing, ref Nothing); otable.Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphThaiJustify;//设置对其方式 otable.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;//设置表格边框样式 if (isColname)//列名称 { int intcol = 0; for (int ii = 0; ii < dt.Columns.Count; ii++) { intcol += 1; otable.Cell(1, intcol).Range.Text = dt.Columns[ii].ColumnName; otable.Cell(1, intcol).Range.Borders.OutsideLineStyle = WdLineStyle.wdLineStyleSingle;//设置单元格样式 } } //写表格内容 int intRow = 1; for (int ii = 0; ii < dt.Rows.Count; ii++) { intRow += 1; int intCol = 0; for (int jj = 0; jj < dt.Columns.Count; jj++) { intCol += 1; otable.Cell(intRow, intCol).Range.Text = dt.Rows[ii][jj].ToString(); otable.Cell(intRow, intCol).Range.Borders.OutsideLineStyle = WdLineStyle.wdLineStyleSingle;//设置单元格样式 } } oword.Visible = true; } catch (Exception) { } finally { System.Diagnostics.Process[] CurrentProcess = System.Diagnostics.Process.GetProcessesByName("WINWORD"); for (int i = 0; i < CurrentProcess.Length; i++) { if (CurrentProcess[i].MainWindowHandle.ToInt32() == 0) { try { CurrentProcess[i].Kill(); } catch { } } } } }