我想使用开放的XML C#应用%(百分比)数字格式
我有数值3.6,我想在Excel中显示该数字为3.6%.
我如何实现这一目标?
我正在尝试使用SharpZipLib从.xlsx文件中读取数据以解压缩(在内存中)并读取内部xml文件.一切都很好,但识别日期 - 它们以julean格式存储,我需要以某种方式识别数字是日期还是只是数字.在另一个主题(不幸的是它死了,我需要快速回答)我从Mark Baker那里了解了一些东西,但它仍然不够......
"Excel将日期存储为浮动值...整数部分是自19/1年1月1日以来的天数(或1/1/1904,具体取决于使用的日历),小数部分是一天的比例(即时间部分)......由于1900年被认为是闰年,因此稍微变得尴尬.
区分数据和数字的唯一方法是数字格式掩码.如果您可以读取格式掩码,则可以使用它来将值标识为日期而不是数字...然后从基准日期计算日期值/格式."
"但是日期的属性"s"是否始终具有"1"的值?我知道它定义了样式,但也许?;)"
s属性引用styles.xml中的样式xf条目,并且日期并不总是条目1 ...这取决于工作簿中使用了多少不同的样式.样式xf又引用数字格式掩码.要识别包含日期的单元格,您需要执行样式xf - >数字格式查找,然后确定该数字格式掩码是否是日期/时间数字格式掩码(而不是例如百分比或会计数字格式掩码)
"还有一个问题 - 我现在正在查看style.xml的内容,在我看到的元素中,我看到的元素如下:"<xf numFmtId ="14"... applyNumberFormat ="1"/>","<xf numFmtId = "1"... applyNumberFormat ="1"/>"等,但没有<numFmts>部分...是否有"标准"格式?或者我只是遗漏了什么?"
有人可以帮帮我吗?提前致谢.
我想在打开的 Excel 文档中设置文本的前景色以写入文本。
为此我尝试过:
var stylesheet1 = spreadSheet.WorkbookPart.WorkbookStylesPart.Stylesheet;
Fills fills1 = new Fills() { Count = (UInt32Value)5U };
Fill fill5 = new Fill();
PatternFill patternFill5 = new PatternFill() { PatternType = PatternValues.Solid };
ForegroundColor foregroundColor3 = new ForegroundColor() { Rgb = "#FF0000" };
patternFill5.Append(foregroundColor3);
fill5.Append(patternFill5);
fills1.Append(fill5);
stylesheet1.Fills.Append(fills1);
var fid = stylesheet1.Fills.Count++;
wbsp.Stylesheet = stylesheet1;
Row excelRow;
excelRow = new Row();
excelRow.RowIndex = 0;
Cell cell = new Cell()
{
//create the cell reference of format A1, B2 etc
//CellReference = …Run Code Online (Sandbox Code Playgroud)