百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
M

Magicodes.IE

> 前端框架
开源

支持导入和导出通用库,支持 Dto 导入和导出、模板导出、精美导出和动态导出,支持 Excel、Csv、Word、Pdf 和 Html。

2.2K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

支持导入和导出通用库,支持 Dto 导入和导出、模板导出、精美导出和动态导出,支持 Excel、Csv、Word、Pdf 和 Html。

Magicodes.IE | 简体中文

Overview

Import and export general library, support Dto import and export, template export, fancy export and dynamic export, support Excel, Csv, Word, Pdf and Html.

Magicodes.IE.IO NEW

A zero-dependency, streaming, low-allocation Excel I/O engine — built from scratch without EPPlus, ClosedXML, or any third-party Excel library. Supports netstandard2.0 / net6.0 / net8.0 / net10.0. Native IAsyncEnumerable, AOT-friendly.

dotnet add package Magicodes.IE.IO
csharp
// Zero-config export
Xlsx.Write("/tmp/orders.xlsx", orders);
Xlsx.Write(Response.Body, orders);
var bytes = Xlsx.ToBytes(orders);

// Async streaming write — DB query straight to file
await Xlsx.WriteAsync(stream, dbContext.Orders.AsAsyncEnumerable());

Learn more


Azure DevOps

  • Build Status:
  • Azure DevOps coverage (master):
  • Azure DevOps tests (master):

For details, see: https://dev.azure.com/xinlaiopencode/Magicodes.IE/_build?definitionId=4&_a=summary

NuGet

Stable version (recommended)

Name NuGet
Magicodes.IE.IO
Magicodes.IE.Core
Magicodes.IE.Excel
Magicodes.IE.Excel.NPOI
Magicodes.IE.Excel.AspNetCore
Magicodes.IE.Pdf
Magicodes.IE.Word
Magicodes.IE.Html
Magicodes.IE.Csv
Magicodes.IE.AspNetCore
Magicodes.IE.EPPlus
Magicodes.IE.Excel.Abp
Magicodes.IE.Csv.Abp
Magicodes.IE.Html.Abp
Magicodes.IE.Pdf.Abp
Magicodes.IE.Word.Abp
Magicodes.IE.Stash

Note

  • Excel import does not support ".xls" files, that is, Excel97-2003 is not supported.
  • For use in Docker, please refer to the section "Use in Docker" in the documentation.
  • Relevant functions have been compiled with unit tests. You can refer to unit tests during the use process.

Tutorial

  1. Basic tutorial of importing student data
  2. Basic tutorial of export Excel
  3. Basic tutorial of export Pdf receipts
  4. Use in Docker
  5. Dynamic Export
  6. Import Multi-Sheet Tutorial
  7. Csv Import and Export
  8. Import and export Excel as pictures
  9. Excel template export-Export textbook order form
  10. Import and Export Filters
  11. Magicodes.IE Fancy Export
  12. Exporting multiple formats in NETCore via request headers
  13. Performance Measurement
  14. Excel Merge Row Cells Import
  15. Excel template export - dynamic export
  16. Magicodes.IE.Excel.AspNetCore Quick Export Excel (new)

See below for other tutorials or unit tests

See below for update history.

Features

  • Need to be used in conjunction with related import and export DTO models, support import and export through DTO and related characteristics. Configure features to control related logic and display results without modifying the logic code;

  • Support various filters to support scenarios such as multi-language, dynamic control column display, etc. For specific usage, see unit test:

    • Import column header filter (you can dynamically specify the imported column and imported value mapping relationship)
    • Export column header filter (can dynamically control the export column, support dynamic export (DataTable))
    • Export column headers filter (can dynamically control the export column, support dynamic export (DataTable))
    • Import result filter (can modify annotation file)
  • Export supports text custom filtering or processing;

  • Import supports automatic skipping of blank lines in the middle;

  • Import supports automatically generate import templates based on DTO, and automatically mark required items;

  • Import supports data drop-down selection, currently only supports enumerated types;

  • Imported data supports the processing of leading and trailing spaces and intermediate spaces, allowing specific columns to be set;

  • Import supports automatic template checking, automatic data verification, unified exception handling, and unified error encapsulation, including exceptions, template errors and row data errors;

  • Support import header position setting, the default is 1;

  • Support import columns out of order, no need to correspond one to one in order;

  • Support to import the specified column index, automatic recognition by default;

  • Exporting Excel supports splitting of Sheets, only need to set the value of [MaxRowNumberOnASheet] of the characteristic [ExporterAttribute]. If it is 0, no splitting is required. See unit test for details;

  • Support importing into Excel for error marking;

  • Import supports cutoff column setting, if not set, blank cutoff will be encountered by default;

  • Support exporting HTML, Word, Pdf, support custom export template; -Export HTML

    -Export Word

    -Export Pdf, support settings, see the update log for details

    -Export receipt

  • Import supports repeated verification;

  • Support single data template export, often used to export receipts, credentials and other businesses

  • Support dynamic column export (based on DataTable), and the Sheet will be split automatically if it exceeds 100W. (Thanks to teacher Zhang Shanyou (https://github.com/xin-lai/Magicodes.IE/pull/8))

  • Support dynamic/ExpandoObject dynamic column export

…
  • Support value mapping, support setting value mapping relationship through "ValueMappingAttribute" feature. It is used to generate data validation constraints for import templates and perform data conversion.
csharp
        /// <summary>
        /// Gender
        /// </summary>
        [ImporterHeader(Name = "Gender")]
        [Required(ErrorMessage = "Gender cannot be empty.")]
        [ValueMapping(text: "Male", 0)]
        [ValueMapping(text: "Female", 1)]
        public Genders Gender { get; set; }
  • You can also inherit the "ValueMappingsBaseAttribute" attribute base class to implement value mapping relationships, currently only available for enumeration and Bool types, supports import and export.
…
  • Support the generation of imported data verification items of enumeration and Bool type, and related data conversion
    • Enumeration will automatically obtain the description, display name, name and value of the enumeration by default to generate data items
…
- **The bool type will generate "yes" and "no" data items by default**
- **If custom value mapping has been set, no default options will be generated**
  • Support excel multi-sheet import


  • Support Excel template export, JSON dynamic export, and support image rendering


    The rendering syntax is as follows:

      {{Company}}  //Cell rendering
      {{Table>>BookInfos|RowNo}} //Table rendering start syntax
      {{Remark|>>Table}}//Table rendering end syntax
      {{Image::ImageUrl?Width=50&Height=120&Alt=404}} //Picture rendering
      {{Image::ImageUrl?w=50&h=120&Alt=404}} //Picture rendering
      {{Image::ImageUrl?Alt=404}} //Picture rendering
      {{Formula::AVERAGE?params=G4:G6}}  //Formula rendering
      {{Formula::SUM?params=G4:G6&G4}}   //Formula rendering

    Custom pipelines will be supported in the future.

  • Support Excel import template to generate annotation

  • Support Excel image import and export

    • Picture import
      • Import as Base64
      • Import to temporary directory
      • Import to the specified directory
    • Picture export
    • Export file path as picture
    • Export network path as picture
  • Support multiple entities to export multiple Sheets

  • Support using some features under the System.ComponentModel.DataAnnotations namespace to control import and export #63

  • Support the use of custom formatter in ASP.NET Core Web API to export content such as Excel, Pdf, Csv #64

  • Support export by column, sheet, and additional rows

csharp
exporter.Append(list1).SeparateByColumn().Append(list2).ExportAppendData(filePath);

For details, see the above tutorial "Magicodes.IE Fancy Export"

  • Support cell export width setting
csharp
[ExporterHeader(Width = 100)]
public DateTime Time3 { get; set; }
  • **Excel export supports HeaderRowIndex. Add the HeaderRowIndex attribute to the ExcelExporterAttribute export attribute class, so that it is convenient to specify the export from the first row when exporting. **

  • Excel generated import template supports built-in data verification

The support for the built-in data validation can be turned on through the IsInterValidation attribute, and it should be noted that only MaxLengthAttribute, MinLengthAttribute, StringLengthAttribute, and RangeAttribute support the opening operation of the built-in data validation.

Support display operations for input prompts:

  • Excel import supports merging row data #239

  • Add packaging for Abp module, see #318 for details.

FAQ

Question List

Update history

Update history

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contribu

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C#csharpcsvdotnetexcel

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类前端框架
定价开源

> 相关工具

R
React
用于构建用户界面的 JavaScript 库
V
Vue.js
渐进式 JavaScript 框架
N
Next.js
基于 React 的全栈 Web 框架