ASP.NET Simple OOXML導出Excel,Word


1)簡介

  Simple OOXML(http://simpleooxml.codeplex.com/)是一個基於Open Office SDK v 2.0,同時支持office2007 Excel和Word導出的開源類庫。支持.net 3.5及以上版本。對於Excel支持多種數據格式包括字符串、數字、日期等,支持刪除工作簿,支持DataTable的粘貼,支持合並單元格和設置單元格樣式等等。對於Word支持通過書簽定位來輸出字段的功能。

  下載地址:本地下載

2)導出Excel

        protected void Button1_Click(object sender, EventArgs e)
        {
            MemoryStream stream = SpreadsheetReader.Create();
            SpreadsheetDocument doc = SpreadsheetDocument.Open(stream, true);
            WorksheetPart worksheetPart = SpreadsheetReader.GetWorksheetPartByName(doc, "Sheet1");
            WorksheetWriter writer = new WorksheetWriter(doc, worksheetPart);

            writer.PasteText("B2", "Hello World");
            

            //Save to the memory stream
            SpreadsheetWriter.Save(doc);
            
            //Write to response stream
            Response.Clear();
            Response.AddHeader("content-disposition", String.Format("attachment;filename={0}", "example1.xlsx"));
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

            stream.WriteTo(Response.OutputStream);
            Response.End();
        }

  如果是現有Excel模版的導出則可以把

MemoryStream stream = SpreadsheetReader.Create();

  修改為

MemoryStream stream = SpreadsheetReader.Copy(“columnstemplate.xlsx");

3)導出Word

        public void DocumentPasteTest()
        {
            MemoryStream stream = DocumentReader.Copy(string.Format("{0}\\template.docx", TestContext.TestDeploymentDir));
            WordprocessingDocument doc = WordprocessingDocument.Open(stream, true);
            
            MainDocumentPart mainPart = doc.MainDocumentPart;

            DocumentWriter writer = new DocumentWriter(mainPart);
            
            Text name = writer.PasteText("Koos van der Merwe", "NAME");
            Text age = writer.PasteText("53", "AGE");
            //Save to the memory stream, and then to a file
            writer.Save();

            DocumentWriter.StreamToFile(string.Format("{0}\\templatetest.docx", GetOutputFolder()), stream);

        }

  通過Word的書簽功能實現粘貼文本的定位。

 

 

4)結語

  Simple OOXML是一個功能非常全面好用的導出Excel和Word的解決方案,唯一美工不足是不支持office 2003的導出,希望對於.NET導出數據的朋友有所幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM