zoukankan      html  css  js  c++  java
  • 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;
                }
            }
  • 相关阅读:
    ORM模型框架(使用mysql)
    Python操作Mysql
    Jmeter操作数据库
    .NetCore+OpenSSL实现Https
    深入理解Https如何保证通信安全
    关于数据库事务和锁的一些分析
    C# Task.Run与Task.Factory.StartNew
    WPF 元素代理解决MVVM模式下DataGridColumn绑定无效问题
    WPF DataGrid行拖拽
    C#集合Clear()和new的性能差异
  • 原文地址:https://www.cnblogs.com/yechangzhong-826217795/p/4213912.html
Copyright © 2011-2022 走看看