我有一个 C# 的 Web 应用程序。并且正在使用 xlsx 模板来创建文档。xlsx 的格式相当复杂,因此我选择了模板路由而不是从头开始创建。在单元格 x2 中,大多数数据以百分比形式输入,但在某些情况下,这将是一个数量。但是当该单元格为百分比时,我似乎无法更改该单元格的格式。模板以百分比格式保存在该单元格中。设置单元格值的代码如下所示,适用于以货币格式保存的其他单元格。我尝试根据另一个具有相同格式的单元格中的该代码将单元格样式索引设置为 103U。
如何更改单元格 x2 的格式?我的帮助将不胜感激。提前谢谢。
public void setCellValueNum(WorksheetPart ws, int row, int col, Double newVal)
{
Cell cl = getCell(ws.Worksheet, getColLetter(col), row);
cl.CellValue = new CellValue(newVal.ToString());
cl.CellReference = getColLetter(col) + row.ToString();
cl.DataType =
new EnumValue<CellValues>(CellValues.Number);
//cl.StyleIndex = (UInt32Value)103U;
}
请参阅编号格式及其样式。在 openxml 中为 Excel 添加样式。
根据从 OpenXml Excel 文件中读取日期,内置了 ID 值小于 164 的格式。您可以在那里找到格式列表。
下面是一个示例:使用 OpenXMl 将 % 数字格式应用于单元格值。只需将格式更改为类似
nf2decimal.FormatCode = StringValue.FromString("0.0");
您需要添加引用单元格的样式。下面是一个示例:https://blogs.msdn.microsoft.com/chrisquon/2009/11/30/stylizing-your-excel-worksheets-with-open-xml-2-0/
openXML 安装一个工具来生成 c# 代码以创建选定的 xlsx (https://tech.trailmax.info/2014/04/open-xml-sdk-tool-to-analyse-documents-and-generated-c-code/(。
我使用以下代码行将格式从百分比更改为货币。 这是有效的,因为默认情况下基本数字格式已经添加到文件中。
cell.StyleIndex = 103U