【问题标题】:How to convert the column number format of a excel sheet in c# dynamically?如何在c#中动态转换excel表格的列号格式?
【发布时间】:2012-04-26 12:59:06
【问题描述】:

我正在将一些字段导出到 c# 中的 Excel 工作表。除了一列之外的所有列都正确出现,但在该列中,我需要将值 0 导出为 0.00 格式。

当我的代码背后的代码运行时,我将值作为 0.00 格式附加到 stringBuilder 对象,但是当我打开导出的文档时,它显示的值为 0。然后我必须更改 excel 表中的列号格式和通过选择类型 12.3323 更改数字格式。

我不想这样。我想在文件后面的 c# 代码中动态定义列号格式。

我该怎么做?如果你知道,请给我建议。

【问题讨论】:

  • 你是如何导出的?您在使用 Excel .NET 库吗?其他图书馆?还是只是 CSV 或 HTML 导出?
  • 您必须知道 0 和 0.0 和 0.00 是相同的值。值和格式是两个不同的东西。我的印象是,您尝试通过选择不同的值(恰好是相同的值)来定义格式。但是不知道怎么用dot.net定义excel格式。

标签: c# excel string-formatting


【解决方案1】:

我认为 C# 做得对。问题是您需要在 excel 中指定“列格式”才能以这种方式显示。只需添加格式掩码即可。

【讨论】:

  • 我要求您提供另一种我可以用代码完成的方法,您的回答与我的要求不符,谢谢您的回复
【解决方案2】:

您可以在写入单元格时使用格式功能来转换您的值。 喜欢:

Format(Convert.ToDouble(data.ToString()), "0.00")

【讨论】:

  • 我说我只在单元格中插入了正确的值,但是 excel 表以默认格式显示该数字,我想在 c# 中动态地给出该单元格编号格式
  • 向单元格插入数据时,是否将数据类型设置为浮点型?如果你用 xml 编写,那么你可以这样做:
  • 在此处发布示例代码,以便我们准确了解您的问题
【解决方案3】:

您可以使用Range.NumberFormat = "0.00"(英文版)或"0,00"(德语版Office); 例如ws.get_Range("A1", "C2").NumberFormat = "0.00";

【讨论】:

    猜你喜欢
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 2021-07-08
    • 2023-03-19
    相关资源
    最近更新 更多