日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Excel模板导出之导出教材订购表

發布時間:2023/12/4 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Excel模板导出之导出教材订购表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明

本教程主要說明如果使用Magicodes.IE.Excel完成教材訂購表的Excel模板導出。

要點

  • 本教程使用Magicodes.IE.Excel來完成Excel模板導出

  • 需要通過創建Dto來完成導出

  • 需要按要求準備Excel模板

主要步驟

1.安裝包Magicodes.IE.Excel

在本篇教程中,我們僅演示使用Excel來完成學生數據的導入。我們需要在已準備好的工程中安裝以下包,參考命令如下所示:

Install-Package Magicodes.IE.Excel

2.準備模板

Magicodes.IE.Excel模板導出支持單元格渲染和表格渲染:

  • 單元格渲染

    語法:

{{Company}} (教學單位名稱)2020年春季教材訂購明細

注意:

    • 雙大括號是必須的

    • 暫不支持表達式等

    • 支持子對象屬性

    • 大小寫敏感

  • 表格渲染

表格渲染的格式如上所述:

  • 渲染語法以“Table>>BookInfos|”為開始,其中“BookInfos”為列表屬性

  • “RowNo”、“No”等均為列表字段

  • 必須以“|>>Table”結尾

  • 暫不支持一行多個Table(即將支持,具體請查看日志)

根據以上語法,我們可以編寫模板如下所示:

3.創建導出Dto

主要代碼如下所示:

  • 教材訂購信息Dto

/// <summary>/// 教材訂購信息/// </summary>public class TextbookOrderInfo{/// <summary>/// 公司名稱/// </summary>public string Company { get; }/// <summary>/// 地址/// </summary>public string Address { get; }/// <summary>/// 聯系人/// </summary>public string Contact { get; }/// <summary>/// 電話/// </summary>public string Tel { get; }/// <summary>/// 制表人/// </summary>public string Watchmaker { get; }/// <summary>/// 時間/// </summary>public string Time { get; }/// <summary>/// 教材信息列表/// </summary>public List<BookInfo> BookInfos { get; }public TextbookOrderInfo(string company, string address, string contact, string tel, string watchmaker, string time, List<BookInfo> bookInfo){Company = company;Address = address;Contact = contact;Tel = tel;Watchmaker = watchmaker;Time = time;BookInfos = bookInfo;}}

如上述代碼所示,定義的結構基本上和模板一致。其中屬性BookInfos對應列表,具體定義如下所示。

  • 教材信息Dto:

/// <summary>/// 教材信息/// </summary>public class BookInfo{/// <summary>/// 行號/// </summary>public int RowNo { get; }/// <summary>/// 書號/// </summary>public string No { get; }/// <summary>/// 書名/// </summary>public string Name { get; }/// <summary>/// 主編/// </summary>public string EditorInChief { get; }/// <summary>/// 出版社/// </summary>public string PublishingHouse { get; }/// <summary>/// 定價/// </summary>public string Price { get; }/// <summary>/// 采購數量/// </summary>public int PurchaseQuantity { get; }/// <summary>/// 備注/// </summary>public string Remark { get; }public BookInfo(int rowNo, string no, string name, string editorInChief, string publishingHouse, string price, int purchaseQuantity, string remark){RowNo = rowNo;No = no;Name = name;EditorInChief = editorInChief;PublishingHouse = publishingHouse;Price = price;PurchaseQuantity = purchaseQuantity;Remark = remark;}}

4.導出

接下來直接調用Magicodes.IE.Excel封裝的模板導出方法,該方法實現自接口

IExportFileByTemplate:

/// <summary>/// 根據模板導出文件/// </summary>public interface IExportFileByTemplate{/// <summary>/// 根據模板導出/// </summary>/// <typeparam name="T"></typeparam>/// <param name="fileName"></param>/// <param name="data"></param>/// <param name="template">HTML模板或模板路徑</param>/// <returns></returns>Task<ExportFileInfo> ExportByTemplate<T>(string fileName, T data,string template) where T : class;}

通過以上方法中的ExportByTemplate,我們就可以完成Excel模板導出。具體使用可以參考以下單元測試:

[Fact(DisplayName = "Excel模板導出教材訂購明細樣表")] public async Task ExportByTemplate_Test() {//模板路徑var tplPath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "ExportTemplates","2020年春季教材訂購明細樣表.xlsx");//創建Excel導出對象IExportFileByTemplate exporter = new ExcelExporter();//導出路徑var filePath = Path.Combine(Directory.GetCurrentDirectory(), nameof(ExportByTemplate_Test) + ".xlsx");if (File.Exists(filePath)) File.Delete(filePath);//根據模板導出await exporter.ExportByTemplate(filePath,new TextbookOrderInfo("湖南心萊信息科技有限公司", "湖南長沙岳麓區", "雪雁", "1367197xxxx", "雪雁", DateTime.Now.ToLongDateString(),new List<BookInfo>(){new BookInfo(1, "0000000001", "《XX從入門到放棄》", "張三", "機械工業出版社", "3.14", 100, "備注"),new BookInfo(2, "0000000002", "《XX從入門到放棄》", "張三", "機械工業出版社", "3.14", 100, "備注"),new BookInfo(3, "0000000003", "《XX從入門到放棄》", "張三", "機械工業出版社", "3.14", 100, "備注")}),tplPath); }

結果如下圖所示:

最后


整個Excel模板導出教程就此結束了,由于倉促完成,還有許多地方可以改善并優化。

相關庫會一直更新,在功能體驗上有可能會和本文教程有細微的出入,請以相關具體代碼、版本日志、單元測試示例為準。

總結

以上是生活随笔為你收集整理的Excel模板导出之导出教材订购表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。