gpt4 book ai didi

C# 到 Excel 设置自定义日期显示和值

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:51 25 4
gpt4 key购买 nike

给定一个特定的日期,我想用 DateTime 对象设置一个单元格的,但没有“时间”信息。例如,今天的值将只是 "29/06/2012" 而不是 "29/06/2012 16:54:36"

关于显示,对于今天的日期,我希望它是这样写的(它是法语,我不知道英语会怎样):"29 juin" 而不是“29/06/2012”

我怎样才能做到这一点?

编辑:我刚刚在 Excel 中查看了我需要的显示格式,它是“jj mmmm”(C# 中的“dd mmmm”)。但是单元格虽然采用了值,但不采用格式。这是一段代码:

                 cell.Value = string.Format("{0:dd/MM/yyyy}", DateTime.Now);
cell.NumberFormat = "jj mmmm";

我也试过:

                 cell.Value = DateTime.Now;
cell.NumberFormat = "jj mmmm";

在那种情况下,显示格式没问题,但单元格值包含时间信息,这是不正确的。

最佳答案

参见 this StackOverflow 问题,以及我的回答。它将允许您直接在 Excel 工作表中设置单元格的自定义格式,您只需要从那里研究不同的日期格式字符串是什么。

不过,这只有在您使用 excel 自动化时才有用。

否则,格式化 DateTime.ToString 输出会更好。再次强调,研究不同的 DateStringFormatting 选项会对您有所帮助。

最终选择。直接更改模板,不使用自动化。转到单元格并手动更改单元格格式,直到显示符合您的要求。这不会改变实际数据,只会改变它的显示。

更新

有两个具体问题需要处理。

问题一是确保 excel 识别这是一个日期。为此,请确保日期数据本身的格式为 en-US。为什么,因为 Microsoft 很笨,不识别国际日期格式。

问题二是单元格的显示格式。对于月份的 3 个字母缩写,请使用字符串 d mmm。如果您想要完整的月份名称,请使用 d-mmmm

我正在测试并注意到 excel 拒绝将 29/06/2012 16:54:36 视为日期,但它接受 06/29/2012 16:54:36 没有问题。正如我所说,微软是愚蠢的。

关于C# 到 Excel 设置自定义日期显示和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11264051/

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