正如您在标题中所读到的那样,我一直在寻找一种使用货币格式格式化电子表格单元格的方法。使用下面的代码我得到我的货币格式,但货币符号显示在数字之后。
// currency format
stylesheet.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.CellFormats>().InsertAt<DocumentFormat.OpenXml.Spreadsheet.CellFormat>(
new DocumentFormat.OpenXml.Spreadsheet.CellFormat()
{
NumberFormatId = 164,
ApplyNumberFormat = true
},
8);
有没有人知道前面显示货币符号的货币格式的NumberFormatId?
答案 0 :(得分:2)
事实证明我需要在电子表格中添加基本样式。下面的代码为货币添加了基本风格。
// Currency
stylesheet.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.NumberingFormats>().InsertAt<DocumentFormat.OpenXml.Spreadsheet.NumberingFormat>(
new DocumentFormat.OpenXml.Spreadsheet.NumberingFormat()
{
NumberFormatId = 164,
FormatCode = "\"" + System.Globalization.CultureInfo.CurrentUICulture.NumberFormat.CurrencySymbol + "\"\\ " + "#,##0.00"
},0);
感谢@Vadim回复。
答案 1 :(得分:0)
我试图改进上面的建议,因为我尝试了同样的结果并没有得到带负值的$ sign。我应用了以下更改并修复了带负值的$ sign问题。
stylesheet.GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.NumberingFormats>().InsertAt<DocumentFormat.OpenXml.Spreadsheet.NumberingFormat>(
new DocumentFormat.OpenXml.Spreadsheet.NumberingFormat()
{
NumberFormatId = 164,
FormatCode = "\"" + System.Globalization.CultureInfo.CurrentUICulture.NumberFormat.CurrencySymbol + "\"\\ " + "#,##0.00;" + "\"(" + System.Globalization.CultureInfo.CurrentUICulture.NumberFormat.CurrencySymbol + "\"\\ " + "#,##.00)[Red];0.00"
}, 0);
输出:正值1.23美元 负值($ 1.23){字体颜色读取)
答案 2 :(得分:-1)
如何更改单元格的文本方向?为我工作。