[英]How to add Conditional Formatting to an XML / Excel file?
我正在通过为其编写XML来生成Excel文件。 我差不多完成了,但是我无法让条件格式按照我想要的方式工作。
我想将条件应用于某些单元格。 例如,对于每个数据行(不是页眉或页脚),如果第7-13列大于第6列中的值,则应突出显示红色。下面的代码仅适用于第一个数据行。 如何获得适用于一组行的信息?
</Table>
<ConditionalFormatting xmlns="urn:schemas-microsoft-com:office:excel">
<Range>RC7:RC13</Range>
<Condition>
<Qualifier>Greater</Qualifier>
<Value1>RC6</Value1>
<Format Style='background-color:#F7A9A5'/>
</Condition>
</ConditionalFormatting>
</Worksheet>
</Workbook>
我宁愿不必指定确切的行号(B7-B13)。 理想情况下,我可以将其应用于所需的每一行,或者应用于某些通用行。
更新:我还有另一个问题,正在比较的列(C6)是一个字符串。 如果字符串为空,则不应应用该格式。 但是,如果该列包含数字,则应将其视为数字并进行比较。
更新:
这是更完整的代码:
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>Sodexo Platform</Author>
<LastAuthor>@HttpContext.Current.User.Identity.Name</LastAuthor>
<Created>@DateTime.Now.ToUniversalTime()</Created>
<LastSaved>@DateTime.Now.ToUniversalTime()</LastSaved>
<Company>Sodexo</Company>
<Version>1</Version>
</DocumentProperties>
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
<DownloadComponents/>
<LocationOfComponents HRef="file:///D:\"/>
</OfficeDocumentSettings>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>8700</WindowHeight>
<WindowWidth>11355</WindowWidth>
<WindowTopX>480</WindowTopX>
<WindowTopY>120</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Table">
<Borders>
<Border ss:Position="Top" ss:Color="#595959" ss:Weight="1" ss:LineStyle="Continuous"/>
<Border ss:Position="Bottom" ss:Color="#595959" ss:Weight="1" ss:LineStyle="Continuous"/>
<Border ss:Position="Left" ss:Color="#595959" ss:Weight="1" ss:LineStyle="Continuous"/>
<Border ss:Position="Right" ss:Color="#595959" ss:Weight="1" ss:LineStyle="Continuous"/>
</Borders>
<Font ss:FontName="Arial" ss:Size="8" />
</Style>
</Styles>
<Worksheet ss:Name="Summary">
<Table>
<Column ss:AutoFitWidth="0" ss:Width="200" />
<Column ss:AutoFitWidth="0" ss:Width="80" />
<Column ss:AutoFitWidth="0" ss:Width="130" />
<Column ss:AutoFitWidth="0" ss:Width="75" />
<Column ss:AutoFitWidth="0" ss:Width="75" />
<Column ss:AutoFitWidth="0" ss:Width="75" />
<Row>
<Cell ss:StyleID="Table">
<Data ss:Type="String">A</Data>
</Cell>
<Cell ss:StyleID="Table">
<Data ss:Type="String">B</Data>
</Cell>
<Cell ss:StyleID="Table">
<Data ss:Type="String">C</Data>
</Cell>
</Row>
</Table>
<ConditionalFormatting xmlns="urn:schemas-microsoft-com:office:excel">
<Range>RC7:RC13</Range>
<Condition>
<Qualifier>Greater</Qualifier>
<Value1>RC6</Value1>
<Format Style='background-color:#F7A9A5'/>
</Condition>
</ConditionalFormatting>
</Worksheet>
</Workbook>
要将条件格式应用于“通用”行集或执行类似A:A的操作,该操作将应用于列A中具有值的所有行,或者您可以使条件格式指向NamedRange。 如果命名范围发生变化,则不必更新条件格式。
要处理空字符串,可以使用公式条件格式,并检查单元格是否为非空白,例如=NOT(ISBLANK(A:A))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.