MVC4 导出word

添加程序包 DocX

using System.IO;
using Novacode;

        /// <summary>

        /// 导出Word

        /// </summary>

        public FileResult GetExportWord()

        {

            var items = _service.GetAll();



            //string path = @"~/Content/Templates/Vote.docx";

            //string path = @"/Content/Templates/Vote.docx";



            string path = Server.MapPath("/Content/Templates/Vote.docx");

            string fileName = "票决结果.docx";

            DocX doc;

            try

            {

                // Store a global reference to the loaded document.

                doc = DocX.Load(path);

                var table = doc.Tables[0];



                var row = table.Rows[1];

                for (var i = 1; i < items.Count; i++)

                {

                    table.InsertRow(row, i + 1);

                }

                for (var i = 0; i < items.Count; i++)

                {

                    var item = items[i];

                    var curRow = table.Rows[i + 1];



                    curRow.Cells[0].MarginTop = 5;

                    curRow.Cells[0].MarginBottom = 5;

                    curRow.Cells[0].Paragraphs[0].InsertText((i + 1).ToString());

                    curRow.Cells[1].MarginTop = 5;

                    curRow.Cells[1].MarginBottom = 5;

                    curRow.Cells[1].Paragraphs[0].InsertText(item.Name ?? "");

                    curRow.Cells[2].MarginTop = 5;

                    curRow.Cells[2].MarginBottom = 5;

                    curRow.Cells[2].Paragraphs[0].InsertText(item.Company ?? "");

                    curRow.Cells[3].MarginTop = 5;

                    curRow.Cells[3].MarginBottom = 5;

                    curRow.Cells[3].Paragraphs[0].InsertText(item.Email ?? "");

                    curRow.Cells[4].MarginTop = 5;

                    curRow.Cells[4].MarginBottom = 5;

                    curRow.Cells[4].Paragraphs[0].InsertText(item.Location ?? "");

                    curRow.Cells[5].MarginTop = 5;

                    curRow.Cells[5].MarginBottom = 5;

                    curRow.Cells[4].Paragraphs[0].InsertText(item.Location ?? "");

                    curRow.Cells[6].MarginTop = 5;

                    curRow.Cells[6].MarginBottom = 5;

                    curRow.Cells[4].Paragraphs[0].InsertText(item.Location ?? "");

                    curRow.Cells[7].MarginTop = 5;

                    curRow.Cells[7].MarginBottom = 5;

                    curRow.Cells[4].Paragraphs[0].InsertText(item.Location ?? "");

                }



                var stream = new MemoryStream(256);

                doc.SaveAs(stream);

                stream.Position = 0;



                return File(stream, "application/vnd.ms-word", fileName);

            }



                // The template 'InvoiceTemplate.docx' does not exist, so create it.

            catch (Exception er)

            {

                throw er;

            }

        }

 

你可能感兴趣的:(word)