# Vktun.Utils **Repository Path**: Vktun/Vktun.Utils ## Basic Information - **Project Name**: Vktun.Utils - **Description**: it`s for abp or some dotnet utils modules - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-02 - **Last Updated**: 2026-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vktun.Utils ABP / .NET utility modules intended to be packaged and reused through NuGet. ## Modules - `Vktun.Abp.PhoneLogin`: phone number registration, SMS code login, phone password token login, and password reset. - `Vktun.Abp.Aliyun.Base`: shared Aliyun configuration and service contracts. - `Vktun.Abp.Aliyun.Sms`: Aliyun SMS sender integration. - `Vktun.Engine.Excel`: reusable Excel import, export, template, and workflow engine. See `src/Vktun.Abp.PhoneLogin/README.md` for phone login usage. ## Vktun.Engine.Excel `Vktun.Engine.Excel` provides a NuGet-ready Excel engine with common contracts, ClosedXML-based import/export services, template generation, workflow orchestration, controlled file import, and dependency injection registration. Register the engine: ```csharp services.AddVktunExcelEngine(options => { options.AllowedRootDirectories.Add(importRoot); }); ``` Export a workbook: ```csharp var request = new ExcelExportRequest { FileName = "report.xlsx" }; var sheet = new ExcelSheetDefinition { Name = "Report", Rows = rows }; sheet.Columns.Add(new ExcelColumnDefinition("Name", "Name")); sheet.Columns.Add(new ExcelColumnDefinition("Amount", "Amount")); request.Sheets.Add(sheet); var bytes = await excelExportService.ExportAsync(request, cancellationToken); ``` Import typed rows: ```csharp public sealed class ImportRow { [ExcelColumn("Name", Required = true)] public string Name { get; set; } = string.Empty; [ExcelColumn("Amount")] public decimal Amount { get; set; } } var result = await excelImportService.ImportAsync(stream, cancellationToken); ```