亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C# Word 類庫的深入理解

 更新時(shí)間:2013年05月30日 16:17:11   作者:  
本篇文章是對(duì)C#中的Word類庫進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

代碼如下所示:

復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Interop.Word;
using System.IO;
using System.Web;
using System.Data;
using System.Reflection;
using Microsoft.Win32;
using System.Text.RegularExpressions;
using System.Net;
namespace OfficeOperate
{
    public class WordOperate
    {
        #region 動(dòng)態(tài)生成Word文檔并填充數(shù)據(jù)
        /**//// <summary>
        /// 動(dòng)態(tài)生成Word文檔并填充數(shù)據(jù)
        /// </summary>
        /// <returns>返回自定義信息</returns>
        public static string CreateWordFile()
        {
            string message = "";
            try
            {
                Object oMissing = System.Reflection.Missing.Value;
                string dir = System.Web.HttpContext.Current.Server.MapPath( "" );//首先在類庫添加using System.web的引用
                if( !Directory.Exists( dir + "http://file" ) )
                {
                    Directory.CreateDirectory( dir + "http://file" );  //創(chuàng)建文件所在目錄
                }
                string name = DateTime.Now.ToLongDateString() + ".doc";
                object filename = dir + "http://file//" + name;  //文件保存路徑
                //創(chuàng)建Word文檔
                Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
                Microsoft.Office.Interop.Word.Document WordDoc = WordApp.Documents.Add( ref oMissing, ref oMissing, ref oMissing, ref oMissing );
                /**/////添加頁眉方法一:
                //WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;
                //WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader;
                //WordApp.ActiveWindow.ActivePane.Selection.InsertAfter( "無錫全真通科技有限公司" );//頁眉內(nèi)容
                //添加頁眉方法二:
                if( WordApp.ActiveWindow.ActivePane.View.Type == Microsoft.Office.Interop.Word.WdViewType.wdNormalView || WordApp.ActiveWindow.ActivePane.View.Type == Microsoft.Office.Interop.Word.WdViewType.wdOutlineView )
                {
                    WordApp.ActiveWindow.ActivePane.View.Type = Microsoft.Office.Interop.Word.WdViewType.wdPrintView;
                }
                WordApp.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekCurrentPageHeader;
                string sHeader = "頁眉內(nèi)容";
                WordApp.Selection.HeaderFooter.LinkToPrevious = false;
                WordApp.Selection.HeaderFooter.Range.Text = sHeader;
                WordApp.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument;

                //WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;//設(shè)置右對(duì)齊
                WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;//設(shè)置左對(duì)齊 
                WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;//跳出頁眉設(shè)置
                WordApp.Selection.ParagraphFormat.LineSpacing = 15f;//設(shè)置文檔的行間距
                //移動(dòng)焦點(diǎn)并換行
                object count = 14;
                object WdLine = Microsoft.Office.Interop.Word.WdUnits.wdLine;//換一行;
                WordApp.Selection.MoveDown( ref WdLine, ref count, ref oMissing );//移動(dòng)焦點(diǎn)
                WordApp.Selection.TypeParagraph();//插入段落
                //文檔中創(chuàng)建表格
                Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables.Add( WordApp.Selection.Range, 12, 3, ref oMissing, ref oMissing );
                //設(shè)置表格樣式
                newTable.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleThickThinLargeGap;
                newTable.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
                newTable.Columns[1].Width = 100f;
                newTable.Columns[2].Width = 220f;
                newTable.Columns[3].Width = 105f;
                //填充表格內(nèi)容
                newTable.Cell( 1, 1 ).Range.Text = "產(chǎn)品詳細(xì)信息表";
                newTable.Cell( 1, 1 ).Range.Bold = 2;//設(shè)置單元格中字體為粗體
                //合并單元格
                newTable.Cell( 1, 1 ).Merge( newTable.Cell( 1, 3 ) );
                WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中
                WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中
                //填充表格內(nèi)容
                newTable.Cell( 2, 1 ).Range.Text = "產(chǎn)品基本信息";
                newTable.Cell( 2, 1 ).Range.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorDarkBlue;//設(shè)置單元格內(nèi)字體顏色
                //合并單元格
                newTable.Cell( 2, 1 ).Merge( newTable.Cell( 2, 3 ) );
                WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
                //填充表格內(nèi)容
                newTable.Cell( 3, 1 ).Range.Text = "品牌名稱:";
                newTable.Cell( 3, 2 ).Range.Text = "BrandName";
                //縱向合并單元格
                newTable.Cell( 3, 3 ).Select();//選中一行
                object moveUnit = Microsoft.Office.Interop.Word.WdUnits.wdLine;
                object moveCount = 5;
                object moveExtend = Microsoft.Office.Interop.Word.WdMovementType.wdExtend;
                WordApp.Selection.MoveDown( ref moveUnit, ref moveCount, ref moveExtend );
                WordApp.Selection.Cells.Merge();
                //插入圖片
                if( File.Exists( System.Web.HttpContext.Current.Server.MapPath( "images//picture.jpg" ) ) )
                {
                    string FileName = System.Web.HttpContext.Current.Server.MapPath( "images//picture.jpg" );//圖片所在路徑
                    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[1].Width = 100f;//圖片寬度
                    WordDoc.Application.ActiveDocument.InlineShapes[1].Height = 100f;//圖片高度
                }
                //將圖片設(shè)置為四周環(huán)繞型
                Microsoft.Office.Interop.Word.Shape s = WordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();
                s.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapSquare;
                newTable.Cell( 12, 1 ).Range.Text = "產(chǎn)品特殊屬性";
                newTable.Cell( 12, 1 ).Merge( newTable.Cell( 12, 3 ) );
                //在表格中增加行
                WordDoc.Content.Tables[1].Rows.Add( ref oMissing );
                WordDoc.Paragraphs.Last.Range.Text = "文檔創(chuàng)建時(shí)間:" + DateTime.Now.ToString();//“落款”
                WordDoc.Paragraphs.Last.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;
                //文件保存
                WordDoc.SaveAs( ref filename, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing );
                WordDoc.Close( ref oMissing, ref oMissing, ref oMissing );
                WordApp.Quit( ref oMissing, ref oMissing, ref oMissing );
                message = name + "文檔生成成功";
            }
            catch
            {
                message = "文件導(dǎo)出異常!";
            }
            return message;
        }
        #endregion      
        #region 創(chuàng)建并打開一個(gè)空的word文檔進(jìn)行編輯
        /**//// <summary>
        /// 創(chuàng)建并打開一個(gè)空的word文檔進(jìn)行編輯
        /// </summary>
        public static void OpenNewWordFileToEdit()
        {
            object oMissing = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Word.Application WordApp;
            Microsoft.Office.Interop.Word.Document WordDoc;
            WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            WordApp.Visible = true;
            WordDoc = WordApp.Documents.Add( ref oMissing, ref oMissing, ref oMissing, ref oMissing );
        }
        #endregion
        #region 創(chuàng)建word文檔
        /**//// <summary>
        /// 創(chuàng)建word文檔
        /// </summary>
        /// <returns></returns>
        public static string createWord()
        {
            Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            Document WordDoc;
            string strContent = "";
            object strFileName = System.Web.HttpContext.Current.Server.MapPath( "test.doc " );
            if( System.IO.File.Exists( (string)strFileName ) )
                System.IO.File.Delete( (string)strFileName );
            Object oMissing = System.Reflection.Missing.Value;
            WordDoc = WordApp.Documents.Add( ref oMissing, ref oMissing, ref oMissing, ref oMissing );
            #region   將數(shù)據(jù)庫中讀取得數(shù)據(jù)寫入到word文件中
            strContent = "你好/n/n/r ";
            WordDoc.Paragraphs.Last.Range.Text = strContent;
            strContent = "這是測(cè)試程序 ";
            WordDoc.Paragraphs.Last.Range.Text = strContent;
            #endregion
            //將WordDoc文檔對(duì)象的內(nèi)容保存為DOC文檔 
            WordDoc.SaveAs( ref strFileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref   oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing );
            //關(guān)閉WordDoc文檔對(duì)象 
            WordDoc.Close( ref oMissing, ref oMissing, ref oMissing );
            //關(guān)閉WordApp組件對(duì)象 
            WordApp.Quit( ref oMissing, ref oMissing, ref oMissing );
            string message = strFileName + "/r/n " + "創(chuàng)建成功 ";
            return message;
        }
        #endregion
        #region 把Word文檔裝化為Html文件
        /**//// <summary>
        /// 把Word文檔裝化為Html文件
        /// </summary>
        /// <param name="strFileName">要轉(zhuǎn)換的Word文檔</param>
        public static void WordToHtml( string strFileName )
        {
            string saveFileName = strFileName + DateTime.Now.ToString( "yyyy-MM-dd-HH-mm-ss" ) + ".html";
            WordToHtml( strFileName, saveFileName );
        }
        /**//// <summary>
        /// 把Word文檔裝化為Html文件
        /// </summary>
        /// <param name="strFileName">要轉(zhuǎn)換的Word文檔</param>
        /// <param name="strSaveFileName">要生成的具體的Html頁面</param>
        public static void WordToHtml( string strFileName, string strSaveFileName )
        {
            Microsoft.Office.Interop.Word.ApplicationClass WordApp;
            Microsoft.Office.Interop.Word.Document WordDoc;
            Object oMissing = System.Reflection.Missing.Value;
            WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            object fileName = strFileName;

            WordDoc = WordApp.Documents.Open( ref fileName,
               ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
               ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
               ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing );
            Type wordType = WordApp.GetType();
            // 打開文件
            Type docsType = WordApp.Documents.GetType();
            // 轉(zhuǎn)換格式,另存為
            Type docType = WordDoc.GetType();
            object saveFileName = strSaveFileName;
            docType.InvokeMember( "SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, WordDoc, new object[] { saveFileName, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML } );
            #region 其它格式:
            /**//**/
            /**////wdFormatHTML
            ///wdFormatDocument
            ///wdFormatDOSText
            ///wdFormatDOSTextLineBreaks
            ///wdFormatEncodedText
            ///wdFormatRTF
            ///wdFormatTemplate
            ///wdFormatText
            ///wdFormatTextLineBreaks
            ///wdFormatUnicodeText
            //--------------------------------------------------------------------------            //            docType.InvokeMember( "SaveAs", System.Reflection.BindingFlags.InvokeMethod,
            //                null, WordDoc, new object[]{saveFileName, Word.WdSaveFormat.wdFormatHTML} );
            // 退出 Word
            //wordType.InvokeMember( "Quit", System.Reflection.BindingFlags.InvokeMethod,
            //    null, WordApp, null );
            #endregion
            WordDoc.Close( ref oMissing, ref oMissing, ref oMissing );
            WordApp.Quit( ref oMissing, ref oMissing, ref oMissing );
        }
        #endregion
        #region 導(dǎo)入模板
        /**//// <summary>
        /// 導(dǎo)入模板
        /// </summary>
        /// <param name="filePath">模板文檔路徑</param>
        public static void ImportTemplate( string filePath )
        {
            object oMissing = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Word.Application WordApp;
            Microsoft.Office.Interop.Word.Document WordDoc;
            WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            WordApp.Visible = true;
            object fileName = filePath;
            WordDoc = WordApp.Documents.Add( ref fileName, ref oMissing, ref oMissing, ref oMissing );
        }
        #endregion
        #region word中添加新表
        /**//// <summary>
        /// word中添加新表
        /// </summary>
        public static void AddTable()
        {
            object oMissing = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Word.Application WordApp;
            Microsoft.Office.Interop.Word.Document WordDoc;
            WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            WordApp.Visible = true;
            WordDoc = WordApp.Documents.Add( ref oMissing, ref oMissing, ref oMissing, ref oMissing );
            object start = 0;
            object end = 0;
            Microsoft.Office.Interop.Word.Range tableLocation = WordDoc.Range( ref start, ref end );
            WordDoc.Tables.Add( tableLocation, 3, 4, ref oMissing, ref oMissing );//3行4列的表
        }
        #endregion
        #region 在表中插入新行
        /**//// <summary>
        /// 在表中插入新的1行
        /// </summary>
        public static void AddRow()
        {
            object oMissing = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Word.Application WordApp;
            Microsoft.Office.Interop.Word.Document WordDoc;
            WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            WordApp.Visible = true;
            WordDoc = WordApp.Documents.Add( ref oMissing, ref oMissing, ref oMissing, ref oMissing );
            object start = 0;
            object end = 0;
            Microsoft.Office.Interop.Word.Range tableLocation = WordDoc.Range( ref start, ref end );
            WordDoc.Tables.Add( tableLocation, 3, 4, ref oMissing, ref oMissing );
            Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables[1];
            object beforeRow = newTable.Rows[1];
            newTable.Rows.Add( ref beforeRow );
        }
        #endregion
        #region 分離單元格
        /**//// <summary>
        /// 合并單元格
        /// </summary>
        public static void CombinationCell()
        {
            object oMissing = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Word.Application WordApp;
            Microsoft.Office.Interop.Word.Document WordDoc;
            WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            WordApp.Visible = true;
            WordDoc = WordApp.Documents.Add( ref oMissing, ref oMissing, ref oMissing, ref oMissing );
            object start = 0;
            object end = 0;
            Microsoft.Office.Interop.Word.Range tableLocation = WordDoc.Range( ref start, ref end );
            WordDoc.Tables.Add( tableLocation, 3, 4, ref oMissing, ref oMissing );
            Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables[1];
            object beforeRow = newTable.Rows[1];
            newTable.Rows.Add( ref beforeRow );
            Microsoft.Office.Interop.Word.Cell cell = newTable.Cell( 2, 1 );//2行1列合并2行2列為一起
            cell.Merge( newTable.Cell( 2, 2 ) );
            //cell.Merge( newTable.Cell( 1, 3 ) );
        }
        #endregion
        #region 分離單元格
        /**//// <summary>
        /// 分離單元格
        /// </summary>
        public static void SeparateCell()
        {
            object oMissing = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Word.Application WordApp;
            Microsoft.Office.Interop.Word.Document WordDoc;
            WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            WordApp.Visible = true;
            WordDoc = WordApp.Documents.Add( ref oMissing, ref oMissing, ref oMissing, ref oMissing );
            object start = 0;
            object end = 0;
            Microsoft.Office.Interop.Word.Range tableLocation = WordDoc.Range( ref start, ref end );
            WordDoc.Tables.Add( tableLocation, 3, 4, ref oMissing, ref oMissing );
            Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables[1];
            object beforeRow = newTable.Rows[1];
            newTable.Rows.Add( ref beforeRow );
            Microsoft.Office.Interop.Word.Cell cell = newTable.Cell( 1, 1 );
            cell.Merge( newTable.Cell( 1, 2 ) );
            object Rownum = 2;
            object Columnnum = 2;
            cell.Split( ref Rownum, ref  Columnnum );
        }
        #endregion

        #region 通過段落控制插入Insert a paragraph at the beginning of the document.
        /**//// <summary>
        /// 通過段落控制插入Insert a paragraph at the beginning of the document.
        /// </summary>
        public static void Insert()
        {
            object oMissing = System.Reflection.Missing.Value;
            //object oEndOfDoc = "http://endofdoc"; /**//* /endofdoc is a predefined bookmark */
            //Start Word and create a new document.
            Microsoft.Office.Interop.Word.Application WordApp;
            Microsoft.Office.Interop.Word.Document WordDoc;
            WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            WordApp.Visible = true;
            WordDoc = WordApp.Documents.Add( ref oMissing, ref oMissing, ref oMissing, ref oMissing );
            //Insert a paragraph at the beginning of the document.
            Microsoft.Office.Interop.Word.Paragraph oPara1;
            oPara1 = WordDoc.Content.Paragraphs.Add( ref oMissing );
            oPara1.Range.Text = "Heading 1";
            oPara1.Range.Font.Bold = 1;
            oPara1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.
            oPara1.Range.InsertParagraphAfter();
        }
        #endregion

        #region word文檔設(shè)置及獲取光標(biāo)位置
        /**//// <summary>
        /// word文檔設(shè)置及獲取光標(biāo)位置
        /// </summary>
        public static void WordSet()
        {
            object oMissing = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Word.Application WordApp;
            Microsoft.Office.Interop.Word.Document WordDoc;
            WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            #region 文檔格式設(shè)置
            WordApp.ActiveDocument.PageSetup.LineNumbering.Active = 0;//行編號(hào)
            WordApp.ActiveDocument.PageSetup.Orientation = Microsoft.Office.Interop.Word.WdOrientation.wdOrientPortrait;//頁面方向
            WordApp.ActiveDocument.PageSetup.TopMargin = WordApp.CentimetersToPoints( float.Parse( "2.54" ) );//上頁邊距
            WordApp.ActiveDocument.PageSetup.BottomMargin = WordApp.CentimetersToPoints( float.Parse( "2.54" ) );//下頁邊距
            WordApp.ActiveDocument.PageSetup.LeftMargin = WordApp.CentimetersToPoints( float.Parse( "3.17" ) );//左頁邊距
            WordApp.ActiveDocument.PageSetup.RightMargin = WordApp.CentimetersToPoints( float.Parse( "3.17" ) );//右頁邊距
            WordApp.ActiveDocument.PageSetup.Gutter = WordApp.CentimetersToPoints( float.Parse( "0" ) );//裝訂線位置
            WordApp.ActiveDocument.PageSetup.HeaderDistance = WordApp.CentimetersToPoints( float.Parse( "1.5" ) );//頁眉
            WordApp.ActiveDocument.PageSetup.FooterDistance = WordApp.CentimetersToPoints( float.Parse( "1.75" ) );//頁腳
            WordApp.ActiveDocument.PageSetup.PageWidth = WordApp.CentimetersToPoints( float.Parse( "21" ) );//紙張寬度
            WordApp.ActiveDocument.PageSetup.PageHeight = WordApp.CentimetersToPoints( float.Parse( "29.7" ) );//紙張高度
            WordApp.ActiveDocument.PageSetup.FirstPageTray = Microsoft.Office.Interop.Word.WdPaperTray.wdPrinterDefaultBin;//紙張來源
            WordApp.ActiveDocument.PageSetup.OtherPagesTray = Microsoft.Office.Interop.Word.WdPaperTray.wdPrinterDefaultBin;//紙張來源
            WordApp.ActiveDocument.PageSetup.SectionStart = Microsoft.Office.Interop.Word.WdSectionStart.wdSectionNewPage;//節(jié)的起始位置:新建頁
            WordApp.ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = 0;//頁眉頁腳-奇偶頁不同
            WordApp.ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = 0;//頁眉頁腳-首頁不同
            WordApp.ActiveDocument.PageSetup.VerticalAlignment = Microsoft.Office.Interop.Word.WdVerticalAlignment.wdAlignVerticalTop;//頁面垂直對(duì)齊方式
            WordApp.ActiveDocument.PageSetup.SuppressEndnotes = 0;//不隱藏尾注
            WordApp.ActiveDocument.PageSetup.MirrorMargins = 0;//不設(shè)置首頁的內(nèi)外邊距
            WordApp.ActiveDocument.PageSetup.TwoPagesOnOne = false;//不雙面打印
            WordApp.ActiveDocument.PageSetup.BookFoldPrinting = false;//不設(shè)置手動(dòng)雙面正面打印
            WordApp.ActiveDocument.PageSetup.BookFoldRevPrinting = false;//不設(shè)置手動(dòng)雙面背面打印
            WordApp.ActiveDocument.PageSetup.BookFoldPrintingSheets = 1;//打印默認(rèn)份數(shù)
            WordApp.ActiveDocument.PageSetup.GutterPos = Microsoft.Office.Interop.Word.WdGutterStyle.wdGutterPosLeft;//裝訂線位于左側(cè)
            WordApp.ActiveDocument.PageSetup.LinesPage = 40;//默認(rèn)頁行數(shù)量
            WordApp.ActiveDocument.PageSetup.LayoutMode = Microsoft.Office.Interop.Word.WdLayoutMode.wdLayoutModeLineGrid;//版式模式為“只指定行網(wǎng)格”
            #endregion
            #region 段落格式設(shè)定
            WordApp.Selection.ParagraphFormat.LeftIndent = WordApp.CentimetersToPoints( float.Parse( "0" ) );//左縮進(jìn)
            WordApp.Selection.ParagraphFormat.RightIndent = WordApp.CentimetersToPoints( float.Parse( "0" ) );//右縮進(jìn)
            WordApp.Selection.ParagraphFormat.SpaceBefore = float.Parse( "0" );//段前間距
            WordApp.Selection.ParagraphFormat.SpaceBeforeAuto = 0;//
            WordApp.Selection.ParagraphFormat.SpaceAfter = float.Parse( "0" );//段后間距
            WordApp.Selection.ParagraphFormat.SpaceAfterAuto = 0;//
            WordApp.Selection.ParagraphFormat.LineSpacingRule = Microsoft.Office.Interop.Word.WdLineSpacing.wdLineSpaceSingle;//單倍行距
            WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;//段落2端對(duì)齊
            WordApp.Selection.ParagraphFormat.WidowControl = 0;//孤行控制
            WordApp.Selection.ParagraphFormat.KeepWithNext = 0;//與下段同頁
            WordApp.Selection.ParagraphFormat.KeepTogether = 0;//段中不分頁
            WordApp.Selection.ParagraphFormat.PageBreakBefore = 0;//段前分頁
            WordApp.Selection.ParagraphFormat.NoLineNumber = 0;//取消行號(hào)
            WordApp.Selection.ParagraphFormat.Hyphenation = 1;//取消段字
            WordApp.Selection.ParagraphFormat.FirstLineIndent = WordApp.CentimetersToPoints( float.Parse( "0" ) );//首行縮進(jìn)
            WordApp.Selection.ParagraphFormat.OutlineLevel = Microsoft.Office.Interop.Word.WdOutlineLevel.wdOutlineLevelBodyText;
            WordApp.Selection.ParagraphFormat.CharacterUnitLeftIndent = float.Parse( "0" );
            WordApp.Selection.ParagraphFormat.CharacterUnitRightIndent = float.Parse( "0" );
            WordApp.Selection.ParagraphFormat.CharacterUnitFirstLineIndent = float.Parse( "0" );
            WordApp.Selection.ParagraphFormat.LineUnitBefore = float.Parse( "0" );
            WordApp.Selection.ParagraphFormat.LineUnitAfter = float.Parse( "0" );
            WordApp.Selection.ParagraphFormat.AutoAdjustRightIndent = 1;
            WordApp.Selection.ParagraphFormat.DisableLineHeightGrid = 0;
            WordApp.Selection.ParagraphFormat.FarEastLineBreakControl = 1;
            WordApp.Selection.ParagraphFormat.WordWrap = 1;
            WordApp.Selection.ParagraphFormat.HangingPunctuation = 1;
            WordApp.Selection.ParagraphFormat.HalfWidthPunctuationOnTopOfLine = 0;
            WordApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndAlpha = 1;
            WordApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndDigit = 1;
            WordApp.Selection.ParagraphFormat.BaseLineAlignment = Microsoft.Office.Interop.Word.WdBaselineAlignment.wdBaselineAlignAuto;
            #endregion
            #region 字體格式設(shè)定
            WordApp.Selection.Font.NameFarEast = "華文中宋";
            WordApp.Selection.Font.NameAscii = "Times New Roman";
            WordApp.Selection.Font.NameOther = "Times New Roman";
            WordApp.Selection.Font.Name = "宋體";
            WordApp.Selection.Font.Size = float.Parse( "14" );
            WordApp.Selection.Font.Bold = 0;
            WordApp.Selection.Font.Italic = 0;
            WordApp.Selection.Font.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineNone;
            WordApp.Selection.Font.UnderlineColor = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic;
            WordApp.Selection.Font.StrikeThrough = 0;//刪除線
            WordApp.Selection.Font.DoubleStrikeThrough = 0;//雙刪除線
            WordApp.Selection.Font.Outline = 0;//空心
            WordApp.Selection.Font.Emboss = 0;//陽文
            WordApp.Selection.Font.Shadow = 0;//陰影
            WordApp.Selection.Font.Hidden = 0;//隱藏文字
            WordApp.Selection.Font.SmallCaps = 0;//小型大寫字母
            WordApp.Selection.Font.AllCaps = 0;//全部大寫字母
            WordApp.Selection.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic;
            WordApp.Selection.Font.Engrave = 0;//陰文
            WordApp.Selection.Font.Superscript = 0;//上標(biāo)
            WordApp.Selection.Font.Subscript = 0;//下標(biāo)
            WordApp.Selection.Font.Spacing = float.Parse( "0" );//字符間距
            WordApp.Selection.Font.Scaling = 100;//字符縮放
            WordApp.Selection.Font.Position = 0;//位置
            WordApp.Selection.Font.Kerning = float.Parse( "1" );//字體間距調(diào)整
            WordApp.Selection.Font.Animation = Microsoft.Office.Interop.Word.WdAnimation.wdAnimationNone;//文字效果
            WordApp.Selection.Font.DisableCharacterSpaceGrid = false;
            WordApp.Selection.Font.EmphasisMark = Microsoft.Office.Interop.Word.WdEmphasisMark.wdEmphasisMarkNone;
            #endregion
            #region 獲取光標(biāo)位置
            /**/////get_Information
            WordApp.Selection.get_Information( WdInformation.wdActiveEndPageNumber );
            //關(guān)于行號(hào)-頁號(hào)-列號(hào)-位置
            //information 屬性
            //返回有關(guān)指定的所選內(nèi)容或區(qū)域的信息。variant 類型,只讀。
            //expression.information(type)
            //expression 必需。該表達(dá)式返回一個(gè) range 或 selection 對(duì)象。
            //type long 類型,必需。需要返回的信息。可取下列 wdinformation 常量之一:
            //wdactiveendadjustedpagenumber 返回頁碼,在該頁中包含指定的所選內(nèi)容或區(qū)域的活動(dòng)結(jié)尾。如果設(shè)置了一個(gè)起始頁碼,并對(duì)頁碼進(jìn)行了手工調(diào)整,則返回調(diào)整過的頁碼。
            //wdactiveendpagenumber 返回頁碼,在該頁中包含指定的所選內(nèi)容或區(qū)域的活動(dòng)結(jié)尾,頁碼從文檔的開頭開始計(jì)算而不考慮對(duì)頁碼的任何手工調(diào)整。
            //wdactiveendsectionnumber 返回節(jié)號(hào),在該節(jié)中包含了指定的所選內(nèi)容或區(qū)域的活動(dòng)結(jié)尾。
            //wdatendofrowmarker 如果指定的所選內(nèi)容或區(qū)域位于表格的行結(jié)尾標(biāo)記處,則本參數(shù)返回 true。
            //wdcapslock 如果大寫字母鎖定模式有效,則本參數(shù)返回 true。
            //wdendofrangecolumnnumber 返回表格列號(hào),在該表格列中包含了指定的所選內(nèi)容或區(qū)域的活動(dòng)結(jié)尾。
            //wdendofrangerownumber 返回表格行號(hào),在該表格行包含了指定的所選內(nèi)容或區(qū)域的活動(dòng)結(jié)尾。
            //wdfirstcharactercolumnnumber 返回指定的所選內(nèi)容或區(qū)域中第一個(gè)字符的位置。如果所選內(nèi)容或區(qū)域是折疊的,則返回所選內(nèi)容或區(qū)域右側(cè)緊接著的字符編號(hào)。
            //wdfirstcharacterlinenumber 返回所選內(nèi)容中第一個(gè)字符的行號(hào)。如果 pagination 屬性為 false,或 draft 屬性為 true,則返回 - 1。
            //wdframeisselected 如果所選內(nèi)容或區(qū)域是一個(gè)完整的圖文框文本框,則本參數(shù)返回 true。
            //wdheaderfootertype 返回一個(gè)值,該值表明包含了指定的所選內(nèi)容或區(qū)域的頁眉或頁腳的類型,如下表所示。 值 頁眉或頁腳的類型
            //- 1 無
            //0 偶數(shù)頁頁眉
            //1 奇數(shù)頁頁眉
            //2 偶數(shù)頁頁腳
            //3 奇數(shù)頁頁腳
            //4 第一個(gè)頁眉
            //5 第一個(gè)頁腳
            //wdhorizontalpositionrelativetopage 返回指定的所選內(nèi)容或區(qū)域的水平位置。該位置是所選內(nèi)容或區(qū)域的左邊與頁面的左邊之間的距離,以磅為單位。如果所選內(nèi)容或區(qū)域不可見,則返回 - 1。
            //wdhorizontalpositionrelativetotextboundary 返回指定的所選內(nèi)容或區(qū)域相對(duì)于周圍最近的正文邊界的左邊的水平位置,以磅為單位。如果所選內(nèi)容或區(qū)域沒有顯示在當(dāng)前屏幕,則本參數(shù)返回 - 1。
            //wdinclipboard 有關(guān)此常量的詳細(xì)內(nèi)容,請(qǐng)參閱 microsoft office 98 macintosh 版的語言參考幫助。
            //wdincommentpane 如果指定的所選內(nèi)容或區(qū)域位于批注窗格,則返回 true。
            //wdinendnote 如果指定的所選內(nèi)容或區(qū)域位于頁面視圖的尾注區(qū)內(nèi),或者位于普通視圖的尾注窗格中,則本參數(shù)返回 true。
            //wdinfootnote 如果指定的所選內(nèi)容或區(qū)域位于頁面視圖的腳注區(qū)內(nèi),或者位于普通視圖的腳注窗格中,則本參數(shù)返回 true。
            //wdinfootnoteendnotepane 如果指定的所選內(nèi)容或區(qū)域位于頁面視圖的腳注或尾注區(qū)內(nèi),或者位于普通視圖的腳注或尾注窗格中,則本參數(shù)返回 true。詳細(xì)內(nèi)容,請(qǐng)參閱前面的 wdinfootnote 和 wdinendnote 的說明。
            //wdinheaderfooter 如果指定的所選內(nèi)容或區(qū)域位于頁眉或頁腳窗格中,或者位于頁面視圖的頁眉或頁腳中,則本參數(shù)返回 true。
            //wdinmasterdocument 如果指定的所選內(nèi)容或區(qū)域位于主控文檔中,則本參數(shù)返回 true。
            //wdinwordmail 返回一個(gè)值,該值表明了所選內(nèi)容或區(qū)域的的位置,如下表所示。值 位置
            //0 所選內(nèi)容或區(qū)域不在一條電子郵件消息中。
            //1 所選內(nèi)容或區(qū)域位于正在發(fā)送的電子郵件中。
            //2 所選內(nèi)容或區(qū)域位于正在閱讀的電子郵件中。
            //wdmaximumnumberofcolumns 返回所選內(nèi)容或區(qū)域中任何行的最大表格列數(shù)。
            //wdmaximumnumberofrows 返回指定的所選內(nèi)容或區(qū)域中表格的最大行數(shù)。
            //wdnumberofpagesindocument 返回與所選內(nèi)容或區(qū)域相關(guān)聯(lián)的文檔的頁數(shù)。
            //wdnumlock 如果 num lock 有效,則本參數(shù)返回 true。
            //wdovertype 如果改寫模式有效,則本參數(shù)返回 true。可用 overtype 屬性改變改寫模式的狀態(tài)。
            //wdreferenceoftype 返回一個(gè)值,該值表明所選內(nèi)容相對(duì)于腳注、尾注或批注引用的位置,如下表所示。 值 描述
            //— 1 所選內(nèi)容或區(qū)域包含、但不只限定于腳注、尾注或批注引用中。
            //0 所選內(nèi)容或區(qū)域不在腳注、尾注或批注引用之前。
            //1 所選內(nèi)容或區(qū)域位于腳注引用之前。
            //2 所選內(nèi)容或區(qū)域位于尾注引用之前。
            //3 所選內(nèi)容或區(qū)域位于批注引用之前。
            //wdrevisionmarking 如果修訂功能處于活動(dòng)狀態(tài),則本參數(shù)返回 true。
            //wdselectionmode 返回一個(gè)值,該值表明當(dāng)前的選定模式,如下表所示。 值 選定模式
            //0 常規(guī)選定
            //1 擴(kuò)展選定
            //2 列選定
            //wdstartofrangecolumnnumber 返回所選內(nèi)容或區(qū)域的起點(diǎn)所在的表格的列號(hào)。
            //wdstartofrangerownumber 返回所選內(nèi)容或區(qū)域的起點(diǎn)所在的表格的行號(hào)。
            //wdverticalpositionrelativetopage 返回所選內(nèi)容或區(qū)域的垂直位置,即所選內(nèi)容的上邊與頁面的上邊之間的距離,以磅為單位。如果所選內(nèi)容或區(qū)域沒有顯示在屏幕上,則本參數(shù)返回 - 1。
            //wdverticalpositionrelativetotextboundary 返回所選內(nèi)容或區(qū)域相對(duì)于周圍最近的正文邊界的上邊的垂直位置,以磅為單位。如果所選內(nèi)容或區(qū)域沒有顯示在屏幕上,則本參數(shù)返回 - 1。
            //wdwithintable 如果所選內(nèi)容位于一個(gè)表格中,則本參數(shù)返回 true。
            //wdzoompercentage 返回由 percentage 屬性設(shè)置的當(dāng)前的放大百分比。
            #endregion
            #region 光標(biāo)移動(dòng)
            //移動(dòng)光標(biāo)
            //光標(biāo)下移3行 上移3行
            object unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;
            object count = 3;
            WordApp.Selection.MoveEnd( ref unit, ref count );
            WordApp.Selection.MoveUp( ref unit, ref count, ref oMissing );
            //Microsoft.Office.Interop.Word.WdUnits說明
            //wdCell                  A cell.
            //wdCharacter             A character.
            //wdCharacterFormatting   Character formatting.
            //wdColumn                A column.
            //wdItem                  The selected item.
            //wdLine                  A line. //行
            //wdParagraph             A paragraph.
            //wdParagraphFormatting   Paragraph formatting.
            //wdRow                   A row.
            //wdScreen                The screen dimensions.
            //wdSection               A section.
            //wdSentence              A sentence.
            //wdStory                 A story.
            //wdTable                 A table.
            //wdWindow                A window.
            //wdWord                  A word.
            //錄制的vb宏
            //     ,移動(dòng)光標(biāo)至當(dāng)前行首
            //    Selection.HomeKey unit:=wdLine
            //    '移動(dòng)光標(biāo)至當(dāng)前行尾
            //    Selection.EndKey unit:=wdLine
            //    '選擇從光標(biāo)至當(dāng)前行首的內(nèi)容
            //    Selection.HomeKey unit:=wdLine, Extend:=wdExtend
            //    '選擇從光標(biāo)至當(dāng)前行尾的內(nèi)容
            //    Selection.EndKey unit:=wdLine, Extend:=wdExtend
            //    '選擇當(dāng)前行
            //    Selection.HomeKey unit:=wdLine
            //    Selection.EndKey unit:=wdLine, Extend:=wdExtend
            //    '移動(dòng)光標(biāo)至文檔開始
            //    Selection.HomeKey unit:=wdStory
            //    '移動(dòng)光標(biāo)至文檔結(jié)尾
            //    Selection.EndKey unit:=wdStory
            //    '選擇從光標(biāo)至文檔開始的內(nèi)容
            //    Selection.HomeKey unit:=wdStory, Extend:=wdExtend
            //    '選擇從光標(biāo)至文檔結(jié)尾的內(nèi)容
            //    Selection.EndKey unit:=wdStory, Extend:=wdExtend
            //    '選擇文檔全部?jī)?nèi)容(從WholeStory可猜出Story應(yīng)是當(dāng)前文檔的意思)
            //    Selection.WholeStory
            //    '移動(dòng)光標(biāo)至當(dāng)前段落的開始
            //    Selection.MoveUp unit:=wdParagraph
            //    '移動(dòng)光標(biāo)至當(dāng)前段落的結(jié)尾
            //    Selection.MoveDown unit:=wdParagraph
            //    '選擇從光標(biāo)至當(dāng)前段落開始的內(nèi)容
            //    Selection.MoveUp unit:=wdParagraph, Extend:=wdExtend
            //    '選擇從光標(biāo)至當(dāng)前段落結(jié)尾的內(nèi)容
            //    Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
            //    '選擇光標(biāo)所在段落的內(nèi)容
            //    Selection.MoveUp unit:=wdParagraph
            //    Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
            //    '顯示選擇區(qū)的開始與結(jié)束的位置,注意:文檔第1個(gè)字符的位置是0
            //    MsgBox ("第" & Selection.Start & "個(gè)字符至第" & Selection.End & "個(gè)字符")
            //    '刪除當(dāng)前行
            //    Selection.HomeKey unit:=wdLine
            //    Selection.EndKey unit:=wdLine, Extend:=wdExtend
            //    Selection.Delete
            //    '刪除當(dāng)前段落
            //    Selection.MoveUp unit:=wdParagraph
            //    Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
            //    Selection.Delete

            //表格的光標(biāo)移動(dòng)
            //光標(biāo)到當(dāng)前光標(biāo)所在表格的地單元格
            WordApp.Selection.Tables[1].Cell( 1, 1 ).Select();
            //unit對(duì)象定義
            object unith = Microsoft.Office.Interop.Word.WdUnits.wdRow;//表格行方式
            object extend = Microsoft.Office.Interop.Word.WdMovementType.wdExtend;/**//**//**////extend對(duì)光標(biāo)移動(dòng)區(qū)域進(jìn)行擴(kuò)展選擇
            object unitu = Microsoft.Office.Interop.Word.WdUnits.wdLine;//文檔行方式,可以看成表格一行.不過和wdRow有區(qū)別
            object unitp = Microsoft.Office.Interop.Word.WdUnits.wdParagraph;//段落方式,對(duì)于表格可以選擇到表格行后的換車符,對(duì)于跨行合并的行選擇,我能找到的最簡(jiǎn)單方式
            //object count = 1;//光標(biāo)移動(dòng)量
            #endregion
        }
        #endregion

        #region 讀取Word表格中某個(gè)單元格的數(shù)據(jù)。其中的參數(shù)分別為文件名(包括路徑),行號(hào),列號(hào)。
        /**//// <summary>
        /// 讀取Word表格中某個(gè)單元格的數(shù)據(jù)。其中的參數(shù)分別為文件名(包括路徑),行號(hào),列號(hào)。
        /// </summary>
        /// <param name="fileName">word文檔</param>
        /// <param name="rowIndex">行</param>
        /// <param name="colIndex">列</param>
        /// <returns>返回?cái)?shù)據(jù)</returns>
        public static string ReadWord_tableContentByCell( string fileName, int rowIndex, int colIndex )
        {
            ApplicationClass cls = null;
            Document doc = null;
            Table table = null;
            object missing = Missing.Value;
            object path = fileName;
            cls = new ApplicationClass();
            try
            {
                doc = cls.Documents.Open
                  ( ref path, ref missing, ref missing, ref missing,
                  ref missing, ref missing, ref missing, ref missing,
                  ref missing, ref missing, ref missing, ref missing,
                  ref missing, ref missing, ref missing, ref missing );
                table = doc.Tables[1];
                string text = table.Cell( rowIndex, colIndex ).Range.Text.ToString();
                text = text.Substring( 0, text.Length - 2 );  //去除尾部的mark
                return text;
            }
            catch( Exception ex )
            {
                return ex.Message;
            }
            finally
            {
                if( doc != null )
                    doc.Close( ref missing, ref missing, ref missing );
                cls.Quit( ref missing, ref missing, ref missing );
            }
        }
        #endregion

        #region 修改word表格中指定單元格的數(shù)據(jù)
        /**//// <summary>
        /// 修改word表格中指定單元格的數(shù)據(jù)
        /// </summary>
        /// <param name="fileName">word文檔包括路徑</param>
        /// <param name="rowIndex">行</param>
        /// <param name="colIndex">列</param>
        /// <param name="content"></param>
        /// <returns></returns>
        public static bool UpdateWordTableByCell( string fileName, int rowIndex, int colIndex, string content )
        {
            ApplicationClass cls = null;
            Document doc = null;
            Table table = null;
            object missing = Missing.Value;
            object path = fileName;
            cls = new ApplicationClass();
            try
            {
                doc = cls.Documents.Open
                    ( ref path, ref missing, ref missing, ref missing,
                  ref missing, ref missing, ref missing, ref missing,
                  ref missing, ref missing, ref missing, ref missing,
                  ref missing, ref missing, ref missing, ref missing );
                table = doc.Tables[1];
                //doc.Range( ref 0, ref 0 ).InsertParagraphAfter();//插入回車
                table.Cell( rowIndex, colIndex ).Range.InsertParagraphAfter();//.Text = content;
                return true;
            }
            catch
            {
                return false;
            }
            finally
            {
                if( doc != null )
                {
                    doc.Close( ref missing, ref missing, ref missing );
                    cls.Quit( ref missing, ref missing, ref missing );
                }
            }
        }
        #endregion

        #region 清楚word進(jìn)程
        /**//// <summary>
        /// 清楚word進(jìn)程
        /// </summary>
        public static void KillWordProcess()
        {
            System.Diagnostics.Process[] myPs;
            myPs = System.Diagnostics.Process.GetProcesses();
            foreach( System.Diagnostics.Process p in myPs )
            {
                if( p.Id != 0 )
                {
                    string myS = "WINWORD.EXE" + p.ProcessName + "  ID:" + p.Id.ToString();
                    try
                    {
                        if( p.Modules != null )
                            if( p.Modules.Count > 0 )
                            {
                                System.Diagnostics.ProcessModule pm = p.Modules[0];
                                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
                    {

                    }
                }
            }
        }
        #endregion

        #region 清楚excel進(jìn)程
        /**//// <summary>
        /// 清楚excel進(jìn)程
        /// </summary>
        public static void KillExcelProcess()
        {
            System.Diagnostics.Process[] myPs;
            myPs = System.Diagnostics.Process.GetProcesses();
            foreach( System.Diagnostics.Process p in myPs )
            {
                if( p.Id != 0 )
                {
                    string myS = "excel.EXE" + p.ProcessName + "  ID:" + p.Id.ToString();
                    try
                    {
                        if( p.Modules != null )
                            if( p.Modules.Count > 0 )
                            {
                                System.Diagnostics.ProcessModule pm = p.Modules[0];
                                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() == "excel.exe" )
                                    p.Kill();
                            }
                    }
                    catch
                    { }
                    finally
                    {

                    }
                }
            }
        }
        #endregion

        #region 網(wǎng)頁內(nèi)容或?qū)雡ord或excel
        /**//// <summary>
        /// 網(wǎng)頁內(nèi)容保存或?qū)С鰹閣ord或excel
        /// </summary>
        /// <param name="url">網(wǎng)頁地址</param>
        /// <param name="num">0為導(dǎo)出word,1為導(dǎo)出excel</param>
        public static void SaveOrOutData( string url, int num )//導(dǎo)出數(shù)據(jù)的函數(shù)0為word,1為Excel
        {
            WebRequest req = WebRequest.Create( url );
            WebResponse resp = req.GetResponse();
            StreamReader sr = new StreamReader( resp.GetResponseStream(), System.Text.Encoding.UTF8 );
            string x = sr.ReadToEnd();
            System.Web.HttpContext.Current.Response.Clear();
            System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding( "gb2312" );
            string fName = DateTime.Now.ToString( "yyyy-MM-dd-ss" );
            if( num == 0 )
            {
                fName = HttpUtility.UrlEncode( fName, System.Text.Encoding.GetEncoding( "gb2312" ) ) + ".doc";
                System.Web.HttpContext.Current.Response.ContentType = "application/ms-word";
            }
            else
            {
                fName = HttpUtility.UrlEncode( fName, System.Text.Encoding.GetEncoding( "gb2312" ) ) + ".xls";
                System.Web.HttpContext.Current.Response.ContentType = "application nd.xls";
            }
            System.Web.HttpContext.Current.Response.AddHeader( "content-disposition", "attachment;filename=" + fName );
            System.Web.HttpContext.Current.Response.Write( getBodyContent( x ) );//獲取table標(biāo)簽
            System.Web.HttpContext.Current.Response.Flush();
            System.Web.HttpContext.Current.Response.End();
        }
        /**//// <summary>
        /// 獲取網(wǎng)頁table標(biāo)簽的內(nèi)容
        /// </summary>
        /// <param name="input">html代碼</param>
        /// <returns></returns>
        private static string getBodyContent( string input )
        {
            string pattern = @"<table.*?</table>";
            Regex reg = new Regex( pattern, RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.IgnoreCase );
            Match mc = reg.Match( input );
            string bodyContent = "";
            if( mc.Success )
            {
                bodyContent = mc.Value;
            }
            return bodyContent;
        }
        #endregion

        #region 判斷系統(tǒng)是否裝excel
        /**//// <summary>
        /// 判斷系統(tǒng)是否裝excel
        /// </summary>
        /// <returns></returns>
        public static bool IsInstallExcel()
        {
            RegistryKey machineKey = Registry.LocalMachine;
            if( IsInstallExcelByVersion( "12.0", machineKey ) )
            {
                return true;
            }
            if( IsInstallExcelByVersion( "11.0", machineKey ) )
            {
                return true;
            }
            return false;
        }
        /**//// <summary>
        /// 判斷系統(tǒng)是否裝某版本的excel
        /// </summary>
        /// <param name="strVersion">版本號(hào)</param>
        /// <param name="machineKey"></param>
        /// <returns></returns>
        private static bool IsInstallExcelByVersion( string strVersion, RegistryKey machineKey )
        {
            try
            {
                RegistryKey installKey = machineKey.OpenSubKey( "Software" ).OpenSubKey( "Microsoft" ).OpenSubKey( "Office" ).OpenSubKey( strVersion ).OpenSubKey( "Excel" ).OpenSubKey( "InstallRoot" );
                if( installKey == null )
                {
                    return false;
                }
                return true;
            }
            catch
            {
                return false;
            }
        }
        #endregion

        #region 判斷系統(tǒng)是否裝word
        /**//// <summary>
        /// 判斷系統(tǒng)是否裝word
        /// </summary>
        /// <returns></returns>
        public static bool IsInstallWord()
        {
            RegistryKey machineKey = Registry.LocalMachine;
            if( IsInstallExcelByVersion( "12.0", machineKey ) )
            {
                return true;
            }
            if( IsInstallExcelByVersion( "11.0", machineKey ) )
            {
                return true;
            }
            return false;
        }
        /**//// <summary>
        /// 判斷系統(tǒng)是否裝某版本的word
        /// </summary>
        /// <param name="strVersion">版本號(hào)</param>
        /// <param name="machineKey"></param>
        /// <returns></returns>
        private static bool IsInstallWordByVersion( string strVersion, RegistryKey machineKey )
        {
            try
            {
                RegistryKey installKey = machineKey.OpenSubKey( "Software" ).OpenSubKey( "Microsoft" ).OpenSubKey( "Office" ).OpenSubKey( strVersion ).OpenSubKey( "Word" ).OpenSubKey( "InstallRoot" );
                if( installKey == null )
                {
                    return false;
                }
                return true;
            }
            catch
            {
                return false;
            }
        }
        #endregion             
    }
}

相關(guān)文章

最新評(píng)論