【问题标题】:Excel format function equivalent in c#c#中等效的Excel格式函数
【发布时间】:2014-06-06 05:45:06
【问题描述】:

我有一个使用 excel 的应用程序。用户需要在我的应用程序中编写一个 excel 格式,我需要将它放在一些单元格中。但是,我需要向用户提供一个示例,以了解格式是否正确。

我知道在 VBA 中有 FORMAT 函数。这个函数在 C# 中是否有等价物?

它需要使用 "[$-409]d.m.yy h:mm AM/PM;@" 格式,但它必须支持 Excel 支持的任何内容。

【问题讨论】:

  • Office Interop Assemblies 将具有这些功能。您可以使用 COM 对象创建、格式化和保存办公文档。
  • 有一个类 WorksheetFunctions 但里面没有 Format 函数。你知道它可能在哪里吗?
  • 我从未说过互操作库是直观的。 ;) 然而,谷歌上有很多东西。我第一次尝试找到了this
  • 没什么帮助。我知道这个解决方案:更改单元格的格式,在其中写入值,然后获取文本。我需要一个不需要更改单元格的解决方案,因为工作簿上可能有跟踪更改,我不想在跟踪中进行更改
  • 所以你想从单元格中获取值并用 C# 格式化它?

标签: c# vba excel


【解决方案1】:

这也困扰着我。我不想将 NumberFormat 应用于单元格,粘贴值然后检索文本。

经过一番调查,我找到了执行此操作的函数。

WorksheetFunction.Text:https://msdn.microsoft.com/en-us/library/office/ff841121.aspx

第一个参数是您要格式化的值,可以是 String、DateTime、Double、Integer 等,第二个参数是 Excel NumberFormat 字符串。

MessageBox.Show(ExcelApp.WorksheetFunction.Text(DateTime.Now, "[$-409]d.m.yy h:mm AM/PM;@"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    相关资源
    最近更新 更多