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