c# - Excel 互操作货币格式

标签 c# excel interop

我正在尝试将 excel 中的单元格格式化为货币格式。所以我进入excel,记录一个我将普通单元格转换为货币格式的宏,看看vb脚本,看到它输出以下内容:

NumberFormat = "$#,##0.00"

所以我采用该格式并将其粘贴到我的代码中,它的工作原理是我在我的 Excel 工作表中的值之前获取货币字符。然而,单元格的格式仍然是一个数字,excel 在单元格的左下角放置了一个小绿色三角形,通知我格式不正确(它是,因为它应该是货币,但它设置为数字)在 C# 中有什么方法可以实际将单元格设置为“货币”格式?

谢谢

最佳答案

范围对象有一个“Style”属性……intelisense 元数据表明它只是“返回一个您可以使用的对象”,但您也可以只使用该属性设置 Style。要获得内置的“货币”样式,请使用(例如)工作簿对象的“样式”属性。

例子:

using Excel = Microsoft.Office.Interop.Excel;

...

var excel = new Excel.Application();
var wb = excel.Workbooks.Add();
var sheet = (Excel.Worksheet)wb.Sheets[1];
((Excel.Range)sheet.Cells[3, 4]).Style = wb.Styles["Currency"];

事实上,您可以将其设置为字符串“Currency”,这可能正是 Charles 所建议的。

((Excel.Range)sheet.Cells[3, 4]).Style = "Currency";

关于c# - Excel 互操作货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4049640/

相关文章:

c# - 获取特殊字符内的项目

c# - 导航离开脚本不起作用

c# - 如何将项目添加到 Dictionary<string, Dictionary<string, object>>?

c# - 收据打印机上的 WPF PrintVisual 正在剪切图像

vba - Excel:将工作表导出为 CSV 文件的宏,无需离开当前的 Excel 工作表

vba - 通过 Excel VBA 创建相关矩阵

excel - 找出称为宏的工作簿

c# - 如何正确定义 PRINT_NOTIFY_INFO_DATA?

.net - Excel COM 互操作 - tlbimp 与主要 WrapperTool

java - 在 Java 中使用 .NET Web 服务的最佳方式