Skip to content

Feature/magicodes ie io pre commit review#619

Merged
hueifeng merged 14 commits into
developfrom
feature/magicodes-ie-io-pre-commit-review
Jul 12, 2026
Merged

Feature/magicodes ie io pre commit review#619
hueifeng merged 14 commits into
developfrom
feature/magicodes-ie-io-pre-commit-review

Conversation

@hueifeng

Copy link
Copy Markdown
Member

feat(IO): 新增并实现 Magicodes.IE.IO 包(零 EPPlus 自写流式 xlsx writer/reader、模板导出、表格、低分配异步)

@hueifeng hueifeng force-pushed the feature/magicodes-ie-io-pre-commit-review branch from 3ad02ed to 0c4a5b0 Compare July 11, 2026 23:18
hueifeng added 13 commits July 12, 2026 07:27
…AllBytesAsync/Write/MemoryStream.Write/string.Replace API,NuGet 集成测试 #if NET 包裹
…Split/StringSplitOptions、await using(IAsyncDisposable),补 System.Runtime.CompilerServices.Unsafe
…uardrails 改用 byte[] + GetString(byte[],int,int) 规避 net471 无 Span 重载
…ferWriter<T>),移除无用的 System.Buffers 包引用
…台限制);MiniExcel 临时文件锁加重试且 File.OpenRead 加 using 防句柄泄漏
…称的 Read(string)/ReadAsync(string) 路径重载并拥有释放 FileStream
…rload; fail fast on ZIP32 4GB limit

- Xlsx.Read/ReadAsync 增加 leaveOpen 参数,默认释放流,可选保留\n- 新增 Xlsx.WriteAsync(path) 便利重载\n- ForwardOnlyZipWriter 在超过 ZIP32(4GB)上限时提前抛出清晰异常\n- Directory.Build.props NoWarn 加入 NU5119,使 TreatWarningsAsErrors 下打包成功\n- 补充 WriteAsync(path)/leaveOpen 保留与默认释放的单元测试
…is enabled

- RunAsync 的 AutoSst 探测改用已过滤的 preparedData(原为原始 data),避免 RowFilter 被静默丢弃导致全量导出

- 修正 WriteAsync(IAsyncEnumerable) XML 文档:去掉误导性的 concurrently 措辞

- 新增回归测试 WriteAsync_AsyncEnumerable_AppliesRowFilter_WhenAutoSstEnabled(异步流+AutoSst+RowFilter 叠加)
@hueifeng hueifeng merged commit 1bacf90 into develop Jul 12, 2026
34 checks passed
@hueifeng hueifeng deleted the feature/magicodes-ie-io-pre-commit-review branch July 12, 2026 09:48
hueifeng added a commit that referenced this pull request Jul 12, 2026
* feat(IO): 新增并实现 Magicodes.IE.IO 包(零 EPPlus 自写流式 xlsx writer/reader、模板导出、表格、低分配异步)

* ci: IO 测试扩展为全平台矩阵(Linux/Windows/macOS × net8.0/net10.0),修复 check 门禁 allowed-skips 遗漏

* fix: IO 测试项目缺失 GitHubActionsTestLogger 导致 CI --logger GitHubActions 报错

* ci: 重构 CI 矩阵,三合一 test step,macOS 真失败检测,matrix 笛卡尔积更优雅

* ci: IO 矩阵补全 net6.0(三平台) 和 net471(Windows)

* fix: IO 测试 net471 兼容:添加 System.Memory,修复 File.ReadAllBytesAsync/WriteAllBytesAsync/Write/MemoryStream.Write/string.Replace API,NuGet 集成测试 #if NET 包裹

* fix: IO 测试 net471 兼容(续):修复 IndexOf/EndsWith/Replace/StringComparison、Split/StringSplitOptions、await using(IAsyncDisposable),补 System.Runtime.CompilerServices.Unsafe

* fix: IO 测试 net471 补 System.Buffers(ArrayBufferWriter/IBufferWriter),Guardrails 改用 byte[] + GetString(byte[],int,int) 规避 net471 无 Span 重载

* fix: net471 补 ArrayBufferWriter<T> polyfill(实现 System.Memory 提供的 IBufferWriter<T>),移除无用的 System.Buffers 包引用

* fix: IO 测试跨框架稳定性 - net471 double/decimal 格式差异改数值容差;net471 异步写失败注入跳过(平台限制);MiniExcel 临时文件锁加重试且 File.OpenRead 加 using 防句柄泄漏

* chore: trigger CI

* fix(IO): XlsxReader 支持 leaveOpen;Xlsx.Read(Stream) 实际释放传入流(与文档一致);新增对称的 Read(string)/ReadAsync(string) 路径重载并拥有释放 FileStream

* feat(io): expose leaveOpen on Read/ReadAsync and WriteAsync(path) overload; fail fast on ZIP32 4GB limit

- Xlsx.Read/ReadAsync 增加 leaveOpen 参数,默认释放流,可选保留\n- 新增 Xlsx.WriteAsync(path) 便利重载\n- ForwardOnlyZipWriter 在超过 ZIP32(4GB)上限时提前抛出清晰异常\n- Directory.Build.props NoWarn 加入 NU5119,使 TreatWarningsAsErrors 下打包成功\n- 补充 WriteAsync(path)/leaveOpen 保留与默认释放的单元测试

* fix(io): honor RowFilter on async IAsyncEnumerable path when AutoSst is enabled

- RunAsync 的 AutoSst 探测改用已过滤的 preparedData(原为原始 data),避免 RowFilter 被静默丢弃导致全量导出

- 修正 WriteAsync(IAsyncEnumerable) XML 文档:去掉误导性的 concurrently 措辞

- 新增回归测试 WriteAsync_AsyncEnumerable_AppliesRowFilter_WhenAutoSstEnabled(异步流+AutoSst+RowFilter 叠加)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant