# ExcelUnity **Repository Path**: AZRNG/excel-unity ## Basic Information - **Project Name**: ExcelUnity - **Description**: Excel导入导出 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-03-22 - **Last Updated**: 2024-10-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ExcelUnity #### 介绍 Excel,CSV文件 和用户的结构化对象之间的导入导出 支持将List,datatable 对象导出到Excel或Csv文件 支持Excel和csv文件导入到 List,datatable对象 支持导入的列绑定,唯一验证,格式验证,错误信息导出和提示 支持导出的单行多行合并,基本样式设置 #### 安装 Install-Package ExcelUnity -Version 1.0.0 注入服务: service.AddExcelUnity(); #### 使用说明 最简单的导入示例: ``` public class ImportGrade { [ColumnName("年级名称")] public string GradeName { get; set; } [ColumnName("年级编码")] public string Code { get; set; } public int Other { get; set; } } public void TestImportGrade() { var sheet = new ImportBookSheet(1, typeof(ImportGrade), 0); var bookmodel = new ImportBook(sheet); using var inputStream = new FileStream(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Excels//Export.xlsx"), FileMode.OpenOrCreate, FileAccess.Read); var importResult = _importer.Import(inputStream, FileType.Xlsx, bookmodel); var dataModels = importResult.GetDataModelAsList(); } ``` 最简单的导出示例: ``` public void ExportToCsv() { var list = new List(); //usercode to fill list var sheet = new ExportSheet(list); var bookmodel = new ExportBook(sheet) { FileType = Core.FileType.Csv }; using var outStream = new FileStream("D://Export_csv.csv", FileMode.Create, FileAccess.Write); _exporter.Export(bookmodel, outStream); } ``` # 功能 ## 已实现 * 支持导出普通的表格样式(标题可有可无) * 支持导出没有规则的excel,需要自己一个一个单元格绘制 * 支持导出上面表格,下面内容自定义的sheet * 支持多个sheet,模块化调用(创建一个workbook,然后调用不同的创建sheet方法) * 合并行、列支持 * 支持单独合并 * 支持根据某一列作为主键,然后跟随合并 * 样式自定义 * 支持列是否忽略显示 * 支持表格的头部样式自定义和列样式自定义 * 表头名称、是否加粗、是否换行、字体大小、列宽 * 支持表头设置行高(取该行高度最大值) ## 未实现 * 上面自定义内容,中间表格,下面自定义内容(改动不大) * 支持设置开始坐标,从该坐标开始才出现内容 * 思考左侧自定义,后侧出现表格的情况(类似开始坐标自定义) * 思考如何实现内容填充 * 跟随合并的时候应该可以设置,可以随意跟随设置,比如该表格中某一列跟随a列作为主键,另一列跟随b列作为主键跟随