c# 操作Office文件(基于Npoi)


1 下载并引用Npoi类库

http://npoi.codeplex.com

2 示例代码

namespace MvcApp.Controllers
{
    public class TestController : Controller
    {
        public FileResult TestXlsx()
        {
            IWorkbook workbook = new XSSFWorkbook();
            ISheet sheet = workbook.CreateSheet();
            for (int i = 0; i < 10; i++)
            {
                IRow row = sheet.CreateRow(i);
                for (int j = 0; j < 10; j++)
                {
                    row.CreateCell(j).SetCellValue(i + "行" + j + "列");
                }
            }
            NpoiMemoryStream ms = new NpoiMemoryStream();
            ms.AllowClose = false;
            workbook.Write(ms);
            ms.Seek(0, System.IO.SeekOrigin.Begin);
            return File(ms, "application/vnd.ms-excel", "测试文件.xlsx");
        }

        public FileResult TestDocx()
        {
            XWPFDocument doc = new XWPFDocument();

            XWPFParagraph p1 = doc.CreateParagraph();
            p1.Alignment = ParagraphAlignment.CENTER;
            XWPFRun r1 = p1.CreateRun();
            r1.SetText("测试段落一");

            XWPFParagraph p2 = doc.CreateParagraph();
            p2.Alignment = ParagraphAlignment.LEFT;
            XWPFRun r2 = p2.CreateRun();
            r2.SetText("测试段落二");

            NpoiMemoryStream ms = new NpoiMemoryStream();
            ms.AllowClose = false;
            doc.Write(ms);
            ms.Seek(0, System.IO.SeekOrigin.Begin);
            return File(ms, "application/vnd.ms-word", "测试文件.docx");
        }
    }

    public class NpoiMemoryStream : MemoryStream
    {
        public bool AllowClose { get; set; }

        public NpoiMemoryStream()
        {
            AllowClose = true;
        }

        public override void Close()
        {
            if (AllowClose)
                base.Close();
        }
    }
}

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM