mini-software / MiniExcel

Fast, Low-Memory, Easy Excel .NET helper to import/export/template spreadsheet (support Linux, Mac)
https://www.nuget.org/packages/MiniExcel/
Apache License 2.0
2.69k stars 329 forks source link

long类型的字段无法正常设置为文本 #627

Open The-Mojoo opened 2 months ago

The-Mojoo commented 2 months ago

Excel Type

Upload Excel File

[b25a7003-8062-4c93-8926-a1a1407697a8.xlsx](https://github.com/user-attachments/files/16187781/b25a7003-8062-4c93-8926-a1a1407697a8.xlsx)

MiniExcel Version

1.33.0

Description

我的数据源有long类型的字段,已经在代码中将excel的列格式设置为文本格式(@),虽然生成的excel看起来是正常显示了的,但实际上点击下就变成了科学计数法,而且列的格式显示的仍然是常规。

image image

var path = Path.Combine("C:\\Demo\\", $"{Guid.NewGuid()}.xlsx");
var config = new OpenXmlConfiguration
{
    AutoFilter = false,
    DynamicColumns =
    [
        new DynamicExcelColumn("long2") { Format = "@", Width = 25 },
    ]
};
var value = new[] { new { long2 = "1550432695793487872" } };
MiniExcel.SaveAs(path, value, configuration: config);
shps951023 commented 1 month ago

可以判断是否超过值,假如超过在前面加上 ' image

shps951023 commented 1 month ago

更新,SaveAs 应该要增加长数值判断,自动加上 style quotePrefix="1" 并把 text 的值改为去除 ' 下个版本实现选项 EnableQuotePrefix 给用户选择 image

image