【问题标题】:Negative values with parenthesis are not getting exported to excel带括号的负值不会导出到 excel
【发布时间】:2020-01-08 12:15:06
【问题描述】:

我正在开发一个 .Net 应用程序。 我有一个要求,我可以将输入值设为“-21455.254746”,我想处理这样的处理,以便在 UI 上显示为 (21455.25)”,甚至导出到 word 或 excel。

我的意思是负值应该显示在括号中,小数点要四舍五入到两位。

以下格式在 UI 和导出到 word 上运行良好。但是在excel导出中,括号不见了。

string resultValue = Convert.ToDouble("-21455.254746").ToString("#,##0.00;(#,##0.00);0.00");

此值将绑定到 gridview (asp.net)。

请有人建议最好的方法,并且也适用于 excel...

【问题讨论】:

  • 我认为 excel 在数字格式单元格中将 (n) 转换为 -n。尝试将格式更改为文本:stackoverflow.com/a/2068060/366064
  • @Bizhan:对不起,我没有明白你的意思。
  • 我没有直接将值分配给 Excel 工作表的单元格。整个结果集作为 dataTable 或 grdview 将被传递给导出功能(这是一个常见的功能)。
  • 请粘贴导出功能的代码
  • 我说这不是您的代码的问题,它是一个 Excel 功能,可以从数字中删除括号。如果您将单元格格式更改为“文本”,它应该可以正常工作。

标签: c# asp.net excel


【解决方案1】:

对于 Word 和 Web,我完全理解您为什么要呈现为字符串,但对于 Excel,它在数字格式方面非常出色,所以让它为您处理。只需传递其本机(十进制)格式的值并为 Excel 提供格式字符串:

ws.Cells[1, 1].NumberFormat = "0.00_);(0.00)";
ws.Cells[1, 1].Value = -21455.254746;

为了给您一些信心,这是实际运行的屏幕截图:

【讨论】:

    猜你喜欢
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多