久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

c# 操作Word總結(jié)

 腳踏實(shí)地飛翔者 2016-01-29

   在醫(yī)療管理系統(tǒng)中為保存患者的體檢和治療記錄,,方便以后的醫(yī)生或其他人查看,。當(dāng)把數(shù)據(jù)保存到數(shù)據(jù)庫中,,需要新建很多的字段,,而且操作很繁瑣,,于是想到網(wǎng)頁的信息創(chuàng)建到一個(gè)word文本中,在顯示的時(shí),,可以在線打開word,,也可以把word轉(zhuǎn)換成html標(biāo)簽顯示。 這樣使用word代替網(wǎng)頁的原因有:
  第一:網(wǎng)頁生成數(shù)學(xué)公式和特殊符號(hào)存儲(chǔ)和顯示比較麻煩(如何操作word生成數(shù)學(xué)公式,,有待測試)
  第二:生成Word版的報(bào)告更容易存檔和沒有環(huán)境下的傳閱及打印
  第三:客戶直接操作Word感覺更親切,,而且非常熟悉
  Msdn上的word操作api(不過只有英文版,英文差的先閃過)
Word2007的API:http://msdn.microsoft.com/en-us/library/bb257531(v=office.12).aspx
Word2010的API:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word(v=office.14).aspx

  Word對象模型 (.Net Perspective)
  五大對象
Application :代表Microsoft Word應(yīng)用程序本身
  是Document和Selection的基類,。通過Application的屬性和方法,,我們可以控制Word的大環(huán)境,。
Document :代表一個(gè)Word文檔
  當(dāng)你新建一個(gè)Word文檔或者打開一個(gè)已有的Word文檔,你將創(chuàng)建一個(gè)Document對象,,該對象被加入到Words Documents Collection中,。擁有焦點(diǎn)的Document稱為ActiveDocument,,可以通過Application對象的ActiveDocument屬性獲得當(dāng)前文檔對象
Selection :代表當(dāng)前選中的區(qū)域(高亮),沒有選中區(qū)域時(shí)代表光標(biāo)點(diǎn)
  它通常是高亮顯示的(例如,,你要改變一段文字的字體,,你首先得選中這段文字,那么選中的這塊區(qū)域就是當(dāng)前文檔的Selection對象所包含的區(qū)域)
Bookmarks :書簽
  1>書簽一般有名字
  2>Saved with the document,且文檔關(guān)閉了之后書簽繼續(xù)存在
  3>書簽通常是隱藏的,,但也可以通過代碼設(shè)置其為可見

Range :代表一塊區(qū)域,,與Selection類似,不過一般不可見
  1>包含一個(gè)起始位置和一個(gè)結(jié)束位置
  2>它可以包含光標(biāo)點(diǎn),,一段文本或者整個(gè)文檔
  3>它包含空格,,tab以及paragraph marks
  4>它可以是當(dāng)前選中的區(qū)域,當(dāng)然也可以不是當(dāng)前選中區(qū)域
  5>它被動(dòng)態(tài)創(chuàng)建
  6>當(dāng)你在一個(gè)Range的末尾插入文本,,這將擴(kuò)展該Range


  word文檔對象的結(jié)構(gòu)圖


關(guān)于對象的詳細(xì)使用,,可以參考msdn api

實(shí)例使用  

創(chuàng)建Word 文檔所使用的主要方法是通過微軟公司提供的Microsoft Word X Object Library,
其中X 為版本號(hào),。Word2010對應(yīng)14.0,, Word 2007 對應(yīng)12.0,Word 2003 對應(yīng)11.0,。
通過在項(xiàng)目中添加該組件,,即可使用微軟公司提供的方法創(chuàng)建相應(yīng)版本的Word 文檔。
在實(shí)例中我將所要生成word的格式設(shè)置為2003版本

新建一個(gè)winForm項(xiàng)目文件,,
Com組件中添加 Microsoft Word 12.0 Object Library,,引用面板中多出Microsoft.Office.Core、Microsoft.Office.Interop.Word兩個(gè)引用,。
在類文件中添加應(yīng)用如下:
using MSWord = Microsoft.Office.Interop.Word;
using System.IO;
using System.Reflection;
using Microsoft.Office.Interop.Word;

  下面從word創(chuàng)建,、格式設(shè)置、文本添加,、圖片添加,、表格添加展示部分代碼:

創(chuàng)建Word文檔

 

設(shè)置Word文檔格式

效果圖:

添加文本

效果圖:

添加圖片

效果圖:

復(fù)制代碼
private void AddWordTable()
        {
            object path;//文件路徑
            string strContent;//文件內(nèi)容
            MSWord.Application wordApp;//Word應(yīng)用程序變量
            MSWord.Document wordDoc;//Word文檔變量
            path = "d:\\myWord.doc";//保存為Word2003文檔
            // path = "d:\\myWord.doc";//保存為Word2007文檔
            wordApp = new MSWord.ApplicationClass();//初始化
            if (File.Exists((string)path))
            {
                File.Delete((string)path);
            }
            Object Nothing = Missing.Value;
            wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);

            int tableRow = 6;
            int tableColumn = 6;
            //定義一個(gè)word中的表格對象
            MSWord.Table table = wordDoc.Tables.Add(wordApp.Selection.Range, tableRow, tableColumn, ref Nothing, ref Nothing);


            wordDoc.Tables[1].Cell(1, 1).Range.Text = "列\(zhòng)n行"; 
            for (int i = 1; i < tableRow; i++)
            {
                for (int j = 1; j < tableColumn; j++)
                {
                    if (i == 1)
                    {
                        table.Cell(i, j+1).Range.Text = "Column " + j;
                    }
                    if (j == 1)
                    {
                        table.Cell(i+1, j).Range.Text = "Row " + i;
                    }
                    table.Cell(i+1, j+1).Range.Text =  i + "" + j + "";
                }
            }


            //添加行
            table.Rows.Add(ref Nothing);
            table.Rows[tableRow + 1].Height = 45;
            //向新添加的行的單元格中添加圖片
            string FileName = "d:\\kk.jpg";//圖片所在路徑
            object LinkToFile = false;
            object SaveWithDocument = true;
            object Anchor = table.Cell(tableRow+1, tableColumn).Range;//選中要添加圖片的單元格
            wordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);
         
            wordDoc.Application.ActiveDocument.InlineShapes[1].Width = 75;//圖片寬度
            wordDoc.Application.ActiveDocument.InlineShapes[1].Height = 45;//圖片高度
            // 將圖片設(shè)置為四周環(huán)繞型
            MSWord.Shape s = wordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();
            s.WrapFormat.Type = MSWord.WdWrapType.wdWrapSquare;


            //設(shè)置table樣式
            table.Rows.HeightRule = MSWord.WdRowHeightRule.wdRowHeightAtLeast;
            table.Rows.Height = wordApp.CentimetersToPoints(float.Parse("0.8"));

            table.Range.Font.Size = 10.5F;
            table.Range.Font.Bold = 0;

            table.Range.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;
            table.Range.Cells.VerticalAlignment = MSWord.WdCellVerticalAlignment.wdCellAlignVerticalBottom;
            //設(shè)置table邊框樣式
            table.Borders.OutsideLineStyle = MSWord.WdLineStyle.wdLineStyleDouble;
            table.Borders.InsideLineStyle = MSWord.WdLineStyle.wdLineStyleSingle;

            table.Rows[1].Range.Font.Bold = 1;
            table.Rows[1].Range.Font.Size = 12F;
            table.Cell(1, 1).Range.Font.Size = 10.5F;
            wordApp.Selection.Cells.Height = 40;//所有單元格的高度
            for (int i = 2; i <= tableRow; i++)
            {
                table.Rows[i].Height = 20;
            }
            table.Cell(1, 1).Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;
            table.Cell(1, 1).Range.Paragraphs[2].Format.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
            
            table.Columns[1].Width = 50;
            for (int i = 2; i <=tableColumn; i++)
            {
                table.Columns[i].Width = 75;
            }


            //添加表頭斜線,并設(shè)置表頭的樣式
            table.Cell(1, 1).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].Visible = true;
            table.Cell(1, 1).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].Color = Microsoft.Office.Interop.Word.WdColor.wdColorGray60;
            table.Cell(1, 1).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].LineWidth = Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;

            //表格邊框
            //表格內(nèi)容行邊框
            SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderHorizontal, Microsoft.Office.Interop.Word.WdColor.wdColorGray20, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth025pt);
            //表格內(nèi)容列邊框
            SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderVertical, Microsoft.Office.Interop.Word.WdColor.wdColorGray20, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth025pt);

            SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft, Microsoft.Office.Interop.Word.WdColor.wdColorGray50, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt);

            SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderRight, Microsoft.Office.Interop.Word.WdColor.wdColorGray50, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt);

            SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderTop, Microsoft.Office.Interop.Word.WdColor.wdColorGray50, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt);

            SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderBottom, Microsoft.Office.Interop.Word.WdColor.wdColorGray50, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt);
            //合并單元格
            table.Cell(4, 4).Merge(table.Cell(4, 5));//橫向合并

            table.Cell(2, 3).Merge(table.Cell(4, 3));//縱向合并


            object format = MSWord.WdSaveFormat.wdFormatDocument;
            wordDoc.SaveAs(ref path, ref format, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
            wordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
            wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
            Response.Write("<script>alert('" + path + ": Word文檔創(chuàng)建表格完畢!');</script>");
        }
復(fù)制代碼

附:SetTableBorderStyle函數(shù)內(nèi)容

View Code

 

效果圖:

書簽使用:

使用步驟:1:建立word模板,并且在word中插入要用到的書簽

     2:c#方法中新建word操作類,,并且打開硬盤中建立好的word模板

     3:找到word模板中的書簽,,并在書簽處寫入要插入的數(shù)據(jù)

 

word書簽使用

 

 

附: c# 將word文檔顯示在網(wǎng)頁上的方式:

Word轉(zhuǎn)換Html

轉(zhuǎn)換思路:

  >取得Word文檔的本地路徑

  >將Word文檔轉(zhuǎn)換為html文件

  >將html保存到項(xiàng)目中

  >在當(dāng)前項(xiàng)目中打開此html文件

局限:

  目前只在IE10測試中可以很好使用,在firefox和chrome測試用均有中文亂碼的問題,,有待解決,。

 

 引用:

http://blog.csdn.net/ruby97/article/details/7406806

http://wenku.baidu.com/link?url=osPLfzoQc1Tl0mi7MAT5srs7KUmPZ3WLf3Pjs_I9Ahu87UNbJceGsogT5ONBsI87DnndqJX7HI6-mRcWehoGcF2P-gLKkvCtiH5KA3UI13S

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多