Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Excel中';存储为文本的数字';由于附加到双值的%符号,如';80,00%';在C中#_C# - Fatal编程技术网

C# 在Excel中';存储为文本的数字';由于附加到双值的%符号,如';80,00%';在C中#

C# 在Excel中';存储为文本的数字';由于附加到双值的%符号,如';80,00%';在C中#,c#,C#,我有一个双精度值,我需要附加一个百分比(%)符号,比如(80,00%)。由于我的编码方式,这会在Excel文件中以文本形式写入 以下是C#中的代码 输出 80,00% 在Excel文件中,我得到一个绿色的问题标记,它告诉我数字是以文本形式存储的 如何解决这个问题购买将双倍值存储为“数字”,这样我就不会得到绿色标记?这对我的poc项目有效: 当我们使用Aspose单元格制作工作簿和工作表时,我找到了适合我的项目的解决方案: var templatePath = @("C:\Temp"); va

我有一个双精度值,我需要附加一个百分比(%)符号,比如(80,00%)。由于我的编码方式,这会在Excel文件中以文本形式写入

以下是C#中的代码

输出

80,00%
在Excel文件中,我得到一个绿色的问题标记,它告诉我数字是以文本形式存储的


如何解决这个问题购买将双倍值存储为“数字”,这样我就不会得到绿色标记?

这对我的poc项目有效:

当我们使用Aspose单元格制作工作簿和工作表时,我找到了适合我的项目的解决方案:

var templatePath = @("C:\Temp");
var workbook = new Workbook(templatePath);
var worksheet = workbook.Worksheets[0];
var decimalObject = 80.0m;
var convertedDecimalObject = (decimalObject / 100)?.ToString("#0.00%");
worksheet.Cells[0].PutValue(convertedDecimalObject, true);

转换后的十进制对象旁边的“true”表示该对象可以转换为excel文件中的其他适当类型

%
为文本。我猜想,您想将其保存为介于0和1之间的数字。您还需要设置正确的字段类型,这在CSV上是不可能的,但在Excel文件上是可能的。您使用的文件格式是什么?您是否使用库来编写它?如果它是CSV,那么除了在输出中将双精度输出作为浮点值写入外,您没有太多的控制。如果是xls或xlsx,那么您使用哪个库来编写它?或者
var templatePath = @("C:\Temp");
var workbook = new Workbook(templatePath);
var worksheet = workbook.Worksheets[0];
var decimalObject = 80.0m;
var convertedDecimalObject = (decimalObject / 100)?.ToString("#0.00%");
worksheet.Cells[0].PutValue(convertedDecimalObject, true);