gpt4 book ai didi

epplus - 自动调整列与设置数字格式相结合将使用未格式化的文本作为测量值进行自动调整

转载 作者:行者123 更新时间:2023-12-02 02:25:39 29 4
gpt4 key购买 nike

当我使用 EPPlus 自动调整格式化为日期字符串的列时,自动调整机制使用未格式化的字符串作为列宽度的度量。

这是一个错误还是我做错了什么?

代码

sheet.Column(2).Style.Numberformat.Format = "yyyy-MM-dd hh:mm";
sheet.Cells.AutoFitColumns();

结果:

autofit using date formatting

加宽Excel中的第二列

autofit using date formatting then widening datefield column in excel

不使用格式设置的自动调整,请注意第二列的宽度与第一张图片中假定自动调整的列的宽度相同。

autofit without formatting

为了完成,这是不使用自动调整时的结果

no autofit

最佳答案

这可能是代码中的字体设置,也可能是 Excel 中的全局字体设置。尝试运行此测试(我将其作为答案发布,因为我无法将其放入评论中):

[TestMethod]
public void Auto_Col_Fomat_Test()
{
//Throw in some data
var datatable = new DataTable("tblData");
datatable.Columns.AddRange(new[]
{
new DataColumn("Col1", typeof (int)), new DataColumn("Col2", typeof (DateTime)), new DataColumn("Col3", typeof (object))
});

for (var i = 0; i < 10; i++)
{
var row = datatable.NewRow();
row[0] = i; row[1] = DateTime.Now.AddDays(i); row[2] = Path.GetRandomFileName();
datatable.Rows.Add(row);
}

//Create a test file
var fi = new FileInfo(@"c:\temp\Auto_Col_Fomat.xlsx");
if (fi.Exists)
fi.Delete();

using (var pck = new ExcelPackage(fi))
{
var workbook = pck.Workbook;
var sheet = workbook.Worksheets.Add("Sheet1");
sheet.Cells.LoadFromDataTable(datatable, true);

sheet.Column(2).Style.Numberformat.Format = "yyyy-MM-dd hh:mm";
sheet.Cells.AutoFitColumns();

pck.Save();
}
}

如果这显示同样的事情,您可能已经更改了默认的 Excel 字体或缩放,这意味着您可能必须将代码中的字体设置为 Body Font 大小 11(至少是 2013 年使用的) 。如果它没有显示,请发布更多代码。

关于epplus - 自动调整列与设置数字格式相结合将使用未格式化的文本作为测量值进行自动调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33035477/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com