【吉光片羽】MVC 導出Word的兩種方式

          系統(tǒng) 2134 0

          ? ? 1.直接將Html轉成Word。MVC自帶FileResult很好用。Html中我們也可以嵌入自己的樣式。

          ? ? html:

                  
                    <
                  
                  
                    div 
                  
                  
                    id
                  
                  
                    ="target"
                  
                  
                    >
                  
                  
                    <
                  
                  
                    style
                  
                  
                    >
                  
                  
                    
          
                  table
                  
                  
                    {
                  
                  
                    border-collapse
                  
                  
                    :
                  
                  
                     collapse
                  
                  
                    ;
                  
                  
                    border
                  
                  
                    :
                  
                  
                     1px solid  black
                  
                  
                    ;
                  
                  
                    }
                  
                  
                    
          
                  td
                  
                  
                    {
                  
                  
                    border
                  
                  
                    :
                  
                  
                     1px royalblue solid
                  
                  
                    }
                  
                  
                    </
                  
                  
                    style
                  
                  
                    >
                  
                  
                    <
                  
                  
                    img 
                  
                  
                    src
                  
                  
                    ="../../Content/eman_sm.png"
                  
                  
                     alt
                  
                  
                    =""
                  
                  
                    />
                  
                  
                    <
                  
                  
                    table
                  
                  
                    >
                  
                  
                    <
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  姓名
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  成績
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    </
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    <
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  張山
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  80分
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    </
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    <
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  李四
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  90分
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    </
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    </
                  
                  
                    table
                  
                  
                    >
                  
                  
                    </
                  
                  
                    div
                  
                  
                    >
                  
                  
                    <
                  
                  
                    div 
                  
                  
                    style
                  
                  
                    ="color: red"
                  
                  
                    ></
                  
                  
                    div
                  
                  
                    >
                  
                  
                    <
                  
                  
                    a 
                  
                  
                    id
                  
                  
                    ="ea"
                  
                  
                     href
                  
                  
                    ="#"
                  
                  
                    >
                  
                  導出word
                  
                    </
                  
                  
                    a
                  
                  
                    >
                  
                  
                    <
                  
                  
                    a 
                  
                  
                    href
                  
                  
                    ="@Url.Action("
                  
                  
                    ExportWords")"
                  
                  
                    >
                  
                  ExportWords
                  
                    </
                  
                  
                    a
                  
                  
                    >
                  
                
          View Code
                <script>
                
                  
          
              $(
                
                "#ea").click(
                
                  function
                
                
                   () {
          
                  
                
                
                  var
                
                 html = $("#target"
                
                  ).html();
          
                  window.open(
                
                "/Home/ExportWord?html=" +
                
                   html);
          
              })
          
          
                
                </script>
              

          get方法會受到url長度的影響,可以換成隱藏的form提交。

                  
                    <
                  
                  
                    form 
                  
                  
                    id
                  
                  
                    ="form1"
                  
                  
                     action
                  
                  
                    ="/Home/ExportWord"
                  
                  
                    >
                  
                  
                    <
                  
                  
                    input 
                  
                  
                    type
                  
                  
                    ="hidden"
                  
                  
                     value
                  
                  
                    =""
                  
                  
                      name
                  
                  
                    ="html"
                  
                  
                     id
                  
                  
                    ="cc"
                  
                  
                    />
                  
                  
                    <
                  
                  
                    input 
                  
                  
                    type
                  
                  
                    ="submit"
                  
                  
                     id
                  
                  
                    ="st"
                  
                  
                    />
                  
                  
                    </
                  
                  
                    form
                  
                  
                    >
                  
                  
                    <
                  
                  
                    div 
                  
                  
                    id
                  
                  
                    ="target"
                  
                  
                    >
                  
                  
                    <
                  
                  
                    style
                  
                  
                    >
                  
                  
                    
          
                  table
                  
                  
                    {
                  
                  
                    border-collapse
                  
                  
                    :
                  
                  
                     collapse
                  
                  
                    ;
                  
                  
                    border
                  
                  
                    :
                  
                  
                     1px solid  black
                  
                  
                    ;
                  
                  
                    }
                  
                  
                    
          
                  td
                  
                  
                    {
                  
                  
                    border
                  
                  
                    :
                  
                  
                     1px royalblue solid
                  
                  
                    }
                  
                  
                    </
                  
                  
                    style
                  
                  
                    >
                  
                  
                    <
                  
                  
                    table
                  
                  
                    >
                  
                  
                    <
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  姓名
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  成績
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    </
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    <
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  張山
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  80分
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    </
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    <
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  李四
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    <
                  
                  
                    td
                  
                  
                    >
                  
                  90分
                  
                    </
                  
                  
                    td
                  
                  
                    >
                  
                  
                    </
                  
                  
                    tr
                  
                  
                    >
                  
                  
                    </
                  
                  
                    table
                  
                  
                    >
                  
                  
                    </
                  
                  
                    div
                  
                  
                    >
                  
                  
                    <
                  
                  
                    div 
                  
                  
                    style
                  
                  
                    ="color: red"
                  
                  
                    ></
                  
                  
                    div
                  
                  
                    >
                  
                  
                    <
                  
                  
                    a 
                  
                  
                    id
                  
                  
                    ="ea"
                  
                  
                     href
                  
                  
                    ="#"
                  
                  
                    >
                  
                  導出word
                  
                    </
                  
                  
                    a
                  
                  
                    >
                  
                  
                    <
                  
                  
                    a 
                  
                  
                    href
                  
                  
                    ="@Url.Action("
                  
                  
                    ExportWords")"
                  
                  
                    >
                  
                  ExportWords
                  
                    </
                  
                  
                    a
                  
                  
                    >
                  
                  
                    <
                  
                  
                    script
                  
                  
                    >
                  
                  
                    
          
              $(
                  
                  
                    "
                  
                  
                    #ea
                  
                  
                    "
                  
                  
                    ).click(
                  
                  
                    function
                  
                  
                     () {
          
                  
                  
                  
                    var
                  
                  
                     html 
                  
                  
                    =
                  
                  
                     $(
                  
                  
                    "
                  
                  
                    #target
                  
                  
                    "
                  
                  
                    ).html();
          
                  $(
                  
                  
                    "
                  
                  
                    #cc
                  
                  
                    "
                  
                  
                    ).val(html);
          
                  $(
                  
                  
                    "
                  
                  
                    #st
                  
                  
                    "
                  
                  
                    ).click();
          
              })
          
          
                  
                  
                    </
                  
                  
                    script
                  
                  
                    >
                  
                
          View Code

          ?

          Action:

                 [ValidateInput(
                
                  false
                
                
                  )]
          
                  
                
                
                  public
                
                 FileResult ExportWord(
                
                  string
                
                
                   html)
          
                  {
          
                      StringBuilder sb 
                
                = 
                
                  new
                
                
                   StringBuilder();
          
                      sb.Append(
                
                
                  "
                
                
                  <!DOCTYPE html>
                
                
                  "
                
                
                  );
          
                      sb.Append(
                
                
                  "
                
                
                  <body>
                
                
                  "
                
                
                  );
          
                      sb.Append(html);
          
                      sb.Append(
                
                
                  "
                
                
                  </body>
                
                
                  "
                
                
                  );
          
                      
                
                
                  var
                
                 byteArray =
                
                   System.Text.Encoding.Default.GetBytes(sb.ToString());
          
                      Response.ContentEncoding 
                
                = System.Text.Encoding.GetEncoding(
                
                  "
                
                
                  gb2312
                
                
                  "
                
                
                  );
          
                      
                
                
                  return
                
                 File(byteArray, 
                
                  "
                
                
                  application/ms-word
                
                
                  "
                
                , 
                
                  "
                
                
                  wordtest
                
                
                  "
                
                 + 
                
                  "
                
                
                  .doc
                
                
                  "
                
                
                  );
          
                  }
                
              

          這樣的問題是導出的圖片是引用型的,路徑一變化就不會顯示了。優(yōu)點就是速度很快。

          ? 2.使用Microsoft.Office.Interop.Word 提供的方法創(chuàng)建一個word。

                  
                    ///
                  
                  
                    <summary>
                  
                  
                    ///
                  
                  
                     創(chuàng)建一個word
          
                  
                  
                  
                    ///
                  
                  
                    </summary>
                  
                  
                    ///
                  
                  
                    <returns></returns>
                  
                  
                    public
                  
                  
                     ActionResult ExportWords()
          
                  {
          
                      CreateAWord();
          
                      SetPageHeader(
                  
                  
                    "
                  
                  
                    測試創(chuàng)建一個Word文檔
                  
                  
                    "
                  
                  
                    );
          
                      InsertText(
                  
                  
                    "
                  
                  
                    這是一個測試文檔的內容
                  
                  
                    "
                  
                  , 
                  
                    14
                  
                  , WdColor.wdColorGray10, 
                  
                    1
                  
                  
                    , WdParagraphAlignment.wdAlignParagraphLeft);
          
                      NewLine();
          
                      InsertPicture(
                  
                  
                    @"
                  
                  
                    C:\Users\Administrator\Desktop\duoceshi.png
                  
                  
                    "
                  
                  
                    );
          
                      InsertTable();
          
                      SaveWord(
                  
                  
                    @"
                  
                  
                    C:\Users\Administrator\Desktop\\test.doc
                  
                  
                    "
                  
                  
                    );
          
                      CloseDocument(
                  
                  
                    @"
                  
                  
                    C:\Users\Administrator\Desktop\\test.doc
                  
                  
                    "
                  
                  
                    );
          
                      
                  
                  
                    return
                  
                  
                    null
                  
                  
                    ;
          
                  }
          
                  
                  
                  
                    ///
                  
                  
                    <summary>
                  
                  
                    ///
                  
                  
                     Word應用對象  
          
                  
                  
                  
                    ///
                  
                  
                    </summary>
                  
                  
                    private
                  
                  
                     Microsoft.Office.Interop.Word.Application _wordApplication;
          
                  
                  
                  
                    ///
                  
                  
                    <summary>
                  
                  
                    ///
                  
                  
                     word 文件對象 
          
                  
                  
                  
                    ///
                  
                  
                    </summary>
                  
                  
                    private
                  
                  
                     Microsoft.Office.Interop.Word.Document _wordDocument;
          
                  
                  
                  
                    ///
                  
                  
                    <summary>
                  
                  
                    ///
                  
                  
                      創(chuàng)建文檔  如果報錯:類型“Microsoft.Office.Interop.Word.ApplicationClass”未定義構造函數(shù) ; 解決方法:在其中點開“引用”文件夾,在"Microsoft.Office.Interop.Word" 上點擊鼠標右鍵,選擇“屬性”,將屬性中的“嵌入互操作類型”的值改為“false”即可
          
                  
                  
                  
                    ///
                  
                  
                    </summary>
                  
                  
                    public
                  
                  
                    void
                  
                  
                     CreateAWord()
          
                  {
          
                      
                  
                  
                    //
                  
                  
                    實例化word應用對象 
                  
                  
                    this
                  
                  ._wordApplication = 
                  
                    new
                  
                  
                     Microsoft.Office.Interop.Word.ApplicationClass();
          
                      Object myNothing 
                  
                  =
                  
                     System.Reflection.Missing.Value;
          
                      
                  
                  
                    this
                  
                  ._wordDocument = 
                  
                    this
                  
                  ._wordApplication.Documents.Add(
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                  
                     myNothing);
          
                  }
          
                  
                  
                  
                    ///
                  
                  
                    <summary>
                  
                  
                    ///
                  
                  
                     添加頁眉 
          
                  
                  
                  
                    ///
                  
                  
                    </summary>
                  
                  
                    ///
                  
                  
                    <param name="pPageHeader"></param>
                  
                  
                    public
                  
                  
                    void
                  
                   SetPageHeader(
                  
                    string
                  
                  
                     pPageHeader)
          
                  {
          
                      
                  
                  
                    //
                  
                  
                    添加頁眉 
                  
                  
                    this
                  
                  ._wordApplication.ActiveWindow.View.Type =
                  
                     Microsoft.Office.Interop.Word.WdViewType.wdOutlineView;
          
                      
                  
                  
                    this
                  
                  ._wordApplication.ActiveWindow.View.SeekView =
                  
                     Microsoft.Office.Interop.Word.WdSeekView.wdSeekPrimaryHeader;
          
                      
                  
                  
                    this
                  
                  
                    ._wordApplication.ActiveWindow.ActivePane.Selection.InsertAfter(pPageHeader);
          
                      
                  
                  
                    //
                  
                  
                    設置中間對齊 
                  
                  
                    this
                  
                  ._wordApplication.Selection.ParagraphFormat.Alignment =
                  
                     Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
          
                      
                  
                  
                    //
                  
                  
                    跳出頁眉設置 
                  
                  
                    this
                  
                  ._wordApplication.ActiveWindow.View.SeekView =
                  
                     Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument;
          
                  }
          
                  
                  
                  
                    ///
                  
                  
                    <summary>
                  
                  
                    ///
                  
                  
                     插入文字
          
                  
                  
                  
                    ///
                  
                  
                    </summary>
                  
                  
                    ///
                  
                  
                    <param name="pText">
                  
                  
                    文本信息
                  
                  
                    </param>
                  
                  
                    ///
                  
                  
                    <param name="pFontSize">
                  
                  
                    字體大小
                  
                  
                    </param>
                  
                  
                    ///
                  
                  
                    <param name="pFontColor">
                  
                  
                    字體顏色
                  
                  
                    </param>
                  
                  
                    ///
                  
                  
                    <param name="pFontBold">
                  
                  
                    字體粗體
                  
                  
                    </param>
                  
                  
                    ///
                  
                  
                    <param name="ptextAlignment">
                  
                  
                    方向
                  
                  
                    </param>
                  
                  
                    public
                  
                  
                    void
                  
                   InsertText(
                  
                    string
                  
                   pText, 
                  
                    int
                  
                   pFontSize, Microsoft.Office.Interop.Word.WdColor pFontColor, 
                  
                    int
                  
                  
                     pFontBold, Microsoft.Office.Interop.Word.WdParagraphAlignment ptextAlignment)
          
                  {
          
                      
                  
                  
                    //
                  
                  
                    設置字體樣式以及方向 
                  
                  
                    this
                  
                  ._wordApplication.Application.Selection.Font.Size =
                  
                     pFontSize;
          
                      
                  
                  
                    this
                  
                  ._wordApplication.Application.Selection.Font.Bold =
                  
                     pFontBold;
          
                      
                  
                  
                    this
                  
                  ._wordApplication.Application.Selection.Font.Color =
                  
                     pFontColor;
          
                      
                  
                  
                    this
                  
                  ._wordApplication.Application.Selection.ParagraphFormat.Alignment =
                  
                     ptextAlignment;
          
                      
                  
                  
                    this
                  
                  
                    ._wordApplication.Application.Selection.TypeText(pText);
          
                  }
          
                  
                  
                  
                    ///
                  
                  
                    <summary>
                  
                  
                    ///
                  
                  
                     換行
          
                  
                  
                  
                    ///
                  
                  
                    </summary>
                  
                  
                    public
                  
                  
                    void
                  
                  
                     NewLine()
          
                  {
          
                      
                  
                  
                    //
                  
                  
                    換行 
                  
                  
                    this
                  
                  
                    ._wordApplication.Application.Selection.TypeParagraph();
          
                  }
          
                  
                  
                  
                    ///
                  
                  
                    <summary>
                  
                  
                    ///
                  
                  
                     插入一個圖片 
          
                  
                  
                  
                    ///
                  
                  
                    </summary>
                  
                  
                    ///
                  
                  
                    <param name="pPictureFileName"></param>
                  
                  
                    public
                  
                  
                    void
                  
                   InsertPicture(
                  
                    string
                  
                  
                     pPictureFileName)
          
                  {
          
                      
                  
                  
                    object
                  
                   myNothing =
                  
                     System.Reflection.Missing.Value;
          
                      
                  
                  
                    //
                  
                  
                    圖片居中顯示 
                  
                  
                    this
                  
                  ._wordApplication.Selection.ParagraphFormat.Alignment =
                  
                     Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
          
                      
                  
                  
                    this
                  
                  ._wordApplication.Application.Selection.InlineShapes.AddPicture(pPictureFileName, 
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                  
                     myNothing);
          
                  }
          
                  
                  
                  
                    ///
                  
                  
                    <summary>
                  
                  
                    ///
                  
                  
                     插入表格
          
                  
                  
                  
                    ///
                  
                  
                    </summary>
                  
                  
                    public
                  
                  
                    void
                  
                  
                     InsertTable()
          
                  {
          
                      
                  
                  
                    object
                  
                   myNothing =
                  
                     System.Reflection.Missing.Value;
          
                      Microsoft.Office.Interop.Word.Table table1 
                  
                  = _wordDocument.Tables.Add(_wordApplication.Selection.Range, 
                  
                    4
                  
                  , 
                  
                    3
                  
                  , 
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                  
                     myNothing);
          
                      _wordDocument.Tables[
                  
                  
                    1
                  
                  ].Cell(
                  
                    1
                  
                  , 
                  
                    1
                  
                  ).Range.Text = 
                  
                    "
                  
                  
                    產品\n項目
                  
                  
                    "
                  
                  
                    ;
          
                      _wordDocument.Tables[
                  
                  
                    1
                  
                  ].Cell(
                  
                    1
                  
                  , 
                  
                    2
                  
                  ).Range.Text = 
                  
                    "
                  
                  
                    電腦
                  
                  
                    "
                  
                  
                    ;
          
                      _wordDocument.Tables[
                  
                  
                    1
                  
                  ].Cell(
                  
                    1
                  
                  , 
                  
                    3
                  
                  ).Range.Text = 
                  
                    "
                  
                  
                    手機
                  
                  
                    "
                  
                  
                    ;
          
                      _wordDocument.Tables[
                  
                  
                    1
                  
                  ].Cell(
                  
                    2
                  
                  , 
                  
                    1
                  
                  ).Range.Text = 
                  
                    "
                  
                  
                    重量(kg)
                  
                  
                    "
                  
                  
                    ;
          
                      _wordDocument.Tables[
                  
                  
                    1
                  
                  ].Cell(
                  
                    3
                  
                  , 
                  
                    1
                  
                  ).Range.Text = 
                  
                    "
                  
                  
                    價格(元)
                  
                  
                    "
                  
                  
                    ;
          
                      _wordDocument.Tables[
                  
                  
                    1
                  
                  ].Cell(
                  
                    4
                  
                  , 
                  
                    1
                  
                  ).Range.Text = 
                  
                    "
                  
                  
                    共同信息
                  
                  
                    "
                  
                  
                    ;
          
                      _wordDocument.Tables[
                  
                  
                    1
                  
                  ].Cell(
                  
                    4
                  
                  , 
                  
                    2
                  
                  ).Range.Text = 
                  
                    "
                  
                  
                    信息A
                  
                  
                    "
                  
                  
                    ;
          
                      _wordDocument.Tables[
                  
                  
                    1
                  
                  ].Cell(
                  
                    4
                  
                  , 
                  
                    3
                  
                  ).Range.Text = 
                  
                    "
                  
                  
                    信息B
                  
                  
                    "
                  
                  
                    ;
          
                      table1.Select();
          
                      table1.Rows.Alignment 
                  
                  = Microsoft.Office.Interop.Word.WdRowAlignment.wdAlignRowCenter;
                  
                    //
                  
                  
                    整個表格居中
                  
                  
                    
          
                      _wordApplication.Selection.Cells.VerticalAlignment 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
          
                      _wordApplication.Selection.ParagraphFormat.Alignment 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
          
                      _wordApplication.Selection.Cells.HeightRule 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdRowHeightRule.wdRowHeightExactly;
          
                      _wordApplication.Selection.Cells.Height 
                  
                  = 
                  
                    40
                  
                  
                    ;
          
                      table1.Rows[
                  
                  
                    2
                  
                  ].Height = 
                  
                    20
                  
                  
                    ;
          
                      table1.Rows[
                  
                  
                    3
                  
                  ].Height = 
                  
                    20
                  
                  
                    ;
          
                      table1.Rows[
                  
                  
                    4
                  
                  ].Height = 
                  
                    20
                  
                  
                    ;
          
                      table1.Range.ParagraphFormat.Alignment 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
          
                      _wordApplication.Selection.Cells.Width 
                  
                  = 
                  
                    150
                  
                  
                    ;
          
                      table1.Columns[
                  
                  
                    1
                  
                  ].Width = 
                  
                    75
                  
                  
                    ;
          
                      table1.Cell(
                  
                  
                    1
                  
                  , 
                  
                    1
                  
                  ).Range.ParagraphFormat.Alignment =
                  
                     Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;
          
                      table1.Cell(
                  
                  
                    1
                  
                  , 
                  
                    1
                  
                  ).Range.Paragraphs[
                  
                    2
                  
                  ].Format.Alignment =
                  
                     Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
          
          
          
          
          
                      _wordApplication.Selection.Cells.VerticalAlignment 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
          
                      _wordApplication.Selection.ParagraphFormat.Alignment 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
          
                      _wordApplication.Selection.Cells.HeightRule 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdRowHeightRule.wdRowHeightExactly;
          
                      _wordApplication.Selection.Cells.Height 
                  
                  = 
                  
                    40
                  
                  
                    ;
          
                      table1.Rows[
                  
                  
                    2
                  
                  ].Height = 
                  
                    20
                  
                  ; table1.Rows[
                  
                    3
                  
                  ].Height = 
                  
                    20
                  
                  
                    ;
          
                      table1.Rows[
                  
                  
                    4
                  
                  ].Height = 
                  
                    20
                  
                  
                    ;
          
                      table1.Range.ParagraphFormat.Alignment 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
          
                      _wordApplication.Selection.Cells.Width 
                  
                  = 
                  
                    150
                  
                  
                    ;
          
                      table1.Columns[
                  
                  
                    1
                  
                  ].Width = 
                  
                    75
                  
                  
                    ;
          
                      table1.Cell(
                  
                  
                    1
                  
                  , 
                  
                    1
                  
                  ).Range.ParagraphFormat.Alignment =
                  
                     Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;
          
                      table1.Cell(
                  
                  
                    1
                  
                  , 
                  
                    1
                  
                  ).Range.Paragraphs[
                  
                    2
                  
                  ].Format.Alignment =
                  
                     Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
          
          
          
                      
                  
                  
                    //
                  
                  
                    表頭斜線 
                  
                  
          
                      table1.Cell(
                  
                    1
                  
                  , 
                  
                    1
                  
                  ).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].Visible = 
                  
                    true
                  
                  
                    ;
          
                      table1.Cell(
                  
                  
                    1
                  
                  , 
                  
                    1
                  
                  ).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].Color =
                  
                     Microsoft.Office.Interop.Word.WdColor.wdColorGreen;
          
                      table1.Cell(
                  
                  
                    1
                  
                  , 
                  
                    1
                  
                  ).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].LineWidth =
                  
                     Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;
          
          
          
          
          
                      
                  
                  
                    //
                  
                  
                    表格邊框             
                  
                  
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderHorizontal].Visible = 
                  
                    true
                  
                  
                    ;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderHorizontal].Color 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdColor.wdColorGreen;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderHorizontal].LineWidth 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;
          
          
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderVertical].Visible 
                  
                  = 
                  
                    true
                  
                  
                    ;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderVertical].Color 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdColor.wdColorGreen;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderVertical].LineWidth 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;
          
          
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft].Visible 
                  
                  = 
                  
                    true
                  
                  
                    ;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft].Color 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdColor.wdColorGreen;
          
          
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft].LineWidth 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft].LineStyle 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleDoubleWavy;
          
          
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderRight].Visible 
                  
                  = 
                  
                    true
                  
                  
                    ;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderRight].Color 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdColor.wdColorGreen;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderRight].LineWidth 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderRight].LineStyle 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleDoubleWavy;
          
          
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderBottom].Visible 
                  
                  = 
                  
                    true
                  
                  
                    ;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderBottom].Color 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdColor.wdColorGreen;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderBottom].LineWidth 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderBottom].LineStyle 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleDouble;
          
          
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderTop].Visible 
                  
                  = 
                  
                    true
                  
                  
                    ;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderTop].Color 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdColor.wdColorGreen;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderTop].LineWidth 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;
          
                      table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderTop].LineStyle 
                  
                  =
                  
                     Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleDouble;
          
          
          
          
          
                      
                  
                  
                    //
                  
                  
                    合并單元格 
          
                      
                  
                  
                    //
                  
                  
                    _wordDocument.Tables[1].Cell(4, 2).Merge(table1.Cell(4, 3)); 
                  
                  
                            }
          
                  [DllImport(
                  
                  
                    "
                  
                  
                    shell32.dll 
                  
                  
                    "
                  
                  
                    )]
          
                  
                  
                  
                    public
                  
                  
                    static
                  
                  
                    extern
                  
                  
                    int
                  
                   ShellExecute(IntPtr hwnd, String lpszOp, String lpszFile, String lpszParams, String lpszDir, 
                  
                    int
                  
                  
                     FsShowCmd);
          
                  
                  
                  
                    ///
                  
                  
                    <summary>
                  
                  
                    ///
                  
                  
                     關閉文檔 
          
                  
                  
                  
                    ///
                  
                  
                    </summary>
                  
                  
                    public
                  
                  
                    void
                  
                   CloseDocument(
                  
                    string
                  
                  
                     fileName)
          
                  {
          
                      
                  
                  
                    object
                  
                   myNothing =
                  
                     System.Reflection.Missing.Value;
          
                      
                  
                  
                    //
                  
                  
                    關閉文檔 
                  
                  
                    object
                  
                   saveOption = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges; _wordDocument.Close(
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                  
                     myNothing);
          
                      _wordApplication.Application.Quit(
                  
                  
                    ref
                  
                   saveOption, 
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                   myNothing); _wordDocument = 
                  
                    null
                  
                  ; _wordApplication = 
                  
                    null
                  
                  
                    ;
          
                      
                  
                  
                    //
                  
                  
                    ShellExecute(IntPtr.Zero, "open", fileName, "", "", 3);
                  
                  
                            }
          
                  
                  
                  
                    ///
                  
                  
                    <summary>
                  
                  
                    ///
                  
                  
                     保存文件 
          
                  
                  
                  
                    ///
                  
                  
                    </summary>
                  
                  
                    ///
                  
                  
                    <param name="pFileName">
                  
                  
                    文件名
                  
                  
                    </param>
                  
                  
                    public
                  
                  
                    void
                  
                   SaveWord(
                  
                    string
                  
                  
                     pFileName)
          
                  {
          
                      
                  
                  
                    object
                  
                   myNothing =
                  
                     System.Reflection.Missing.Value;
          
                      
                  
                  
                    object
                  
                   myFileName =
                  
                     pFileName;
          
                      
                  
                  
                    object
                  
                   myWordFormatDocument =
                  
                     Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument;
          
                      
                  
                  
                    object
                  
                   myLockd = 
                  
                    false
                  
                  
                    ;
          
                      
                  
                  
                    object
                  
                   myPassword = 
                  
                    ""
                  
                  
                    ;
          
                      
                  
                  
                    object
                  
                   myAddto = 
                  
                    true
                  
                  
                    ;
          
                      
                  
                  
                    try
                  
                  
                    
          
                      {
          
                          
                  
                  
                    this
                  
                  ._wordDocument.SaveAs(
                  
                    ref
                  
                   myFileName, 
                  
                    ref
                  
                   myWordFormatDocument, 
                  
                    ref
                  
                   myLockd, 
                  
                    ref
                  
                  
                     myPassword,
          
                              
                  
                  
                    ref
                  
                   myAddto, 
                  
                    ref
                  
                  
                     myPassword,
          
                              
                  
                  
                    ref
                  
                   myLockd, 
                  
                    ref
                  
                   myLockd, 
                  
                    ref
                  
                   myLockd, 
                  
                    ref
                  
                   myLockd, 
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                  
                     myNothing,
          
                              
                  
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                   myNothing, 
                  
                    ref
                  
                  
                     myNothing);
          
                      }
          
                      
                  
                  
                    catch
                  
                  
                     (Exception exception)
          
                      {
          
                          
                  
                  
                    throw
                  
                  
                    new
                  
                   Exception(
                  
                    "
                  
                  
                    保存word文檔失敗!
                  
                  
                    "
                  
                  
                    );
          
                      }
          
                  }
                  
                
          View Code

          ?圖片倒是保存住了,可配置的地方很多,速度有些慢,代碼量頗多。

          ?3.如果要導出excel 還是用NPOI最好。? http://www.cnblogs.com/lwme/archive/2011/11/18/npoi_excel_import_export.html

          ? 調用該博主ExcelRender中的方法,返回File。 不然網上的其他辦法都很有問題,要么打不開,要么服務器沒裝office就不行了。

                
                  public
                
                
                   FileResult ExportExcel()
          
                  {
          
                      DataTable table 
                
                = 
                
                  new
                
                
                   DataTable();
          
                      table.Columns.Add(
                
                
                  "
                
                
                  aa
                
                
                  "
                
                , 
                
                  typeof
                
                (
                
                  string
                
                
                  ));
          
                      table.Columns.Add(
                
                
                  "
                
                
                  bb
                
                
                  "
                
                , 
                
                  typeof
                
                (
                
                  string
                
                
                  ));
          
                      table.Columns.Add(
                
                
                  "
                
                
                  cc
                
                
                  "
                
                , 
                
                  typeof
                
                (
                
                  string
                
                
                  ));
          
                      
                
                
                  for
                
                 (
                
                  int
                
                 i = 
                
                  0
                
                ; i < 
                
                  10
                
                ; i++
                
                  )
          
                      {
          
                          
                
                
                  string
                
                 a =
                
                   DateTime.Now.Ticks.ToString();
          
                          Thread.Sleep(
                
                
                  1
                
                
                  );
          
                          
                
                
                  string
                
                 b =
                
                   DateTime.Now.Ticks.ToString();
          
                          Thread.Sleep(
                
                
                  1
                
                
                  );
          
                          
                
                
                  string
                
                 c =
                
                   DateTime.Now.Ticks.ToString();
          
                          Thread.Sleep(
                
                
                  1
                
                
                  );
          
                          table.Rows.Add(a, b, c);
          
                      }
          
          
          
                     
                
                
                  var
                
                 ms=
                
                   ExcelRender.RenderToExcel(table);
          
          
          
                      
                
                
                  return
                
                 File(ms, 
                
                  "
                
                
                  application/vnd.ms-excel
                
                
                  "
                
                , 
                
                  "
                
                
                  考試成績.xls
                
                
                  "
                
                
                  );
          
                  }
                
              

          ?4. Excel導入。

          ? file就是一個HttpPostedFileBase 對象。即上傳的excel文件。用ExcelRender 轉換為table 再進行插入數(shù)據(jù)庫的操作。

                
                  byte
                
                [] filebBytes =
                
                  new
                
                
                  byte
                
                
                  [file.ContentLength];
          
             file.InputStream.Read(filebBytes, 
                
                
                  0
                
                
                  , file.ContentLength);
          
          
          
             
                
                
                  var
                
                 table = ExcelRender.RenderFromExcel(
                
                  new
                
                 MemoryStream(filebBytes),
                
                  0
                
                ,
                
                  0
                
                );
              

          ?

          【吉光片羽】MVC 導出Word的兩種方式


          更多文章、技術交流、商務合作、聯(lián)系博主

          微信掃碼或搜索:z360901061

          微信掃一掃加我為好友

          QQ號聯(lián)系: 360901061

          您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

          【本文對您有幫助就好】

          您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

          發(fā)表我的評論
          最新評論 總共0條評論
          主站蜘蛛池模板: 新邵县| 临汾市| 三江| 扎赉特旗| 泸州市| 萨嘎县| 铁岭县| 偃师市| 陆河县| 望谟县| 平顶山市| 龙泉市| 永福县| 聂拉木县| 苍山县| 郯城县| 黄龙县| 当阳市| 石柱| 宜春市| 大关县| 望城县| 夏河县| 明水县| 张家界市| 玛纳斯县| 开平市| 江门市| 呈贡县| 麦盖提县| 普陀区| 喀喇沁旗| 平武县| 盐亭县| 沐川县| 屏山县| 西林县| 牡丹江市| 通榆县| 呼玛县| 岐山县|

                    姓名" />

                    日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利