C#使用_关于xml表格_Styles节点
来源:互联网 发布:qq老密码数据库 编辑:程序博客网 时间:2024/05/24 01:37
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="12"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
</Styles>
这个我估计是最简单的Styles节点了,它只包含一个style:Default。它有什么属性呢?
1.Alignment
Alignment有两个可以设置文字停靠位置的属性,ss:Horizontal和ss:Vertical。分别表示一个单元格里的文字在水平方向和竖直方向上向哪边靠。用Excel打开我们的xml表格文件,在A1单元格上右击,单击“设置单元格格式”,在弹出的对话框中选择“对齐”标签,可以看到有个文本对齐方式,也分为水平对齐和垂直对齐两种,分别对应于我们的ss:Horizontal和ss:Vertical,比如我们可以选择靠左(缩进),保存文件,用记事本打开,我们发现,Styles节点变成如下样子:
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="12"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s21">
<Alignment ss:Horizontal="Left" ss:Vertical="Bottom"/>
</Style>
</Styles>
它增加了一个ID为21的Style节点,该节点的Alignment属性正如我们所设置的。(在后面我们会看到,A1节点正是使用了该Style,另外,对于ID的编号我一直没搞明白是按什么样的规则取名的)
但是这种改变只能使使用该Style的单元格变成靠左,如果我们想让默认的Style也变成靠左,则需要改变Default Style的Alignment属性为ss:Horizontal="Left" ss:Vertical="Bottom"。但是要注意的是,在这种情况下,s21这个Style的存在就没有意义了,因为它和Default Style的属性相同,因此可以去掉。(设置默认Style对应的操作为,单击菜单栏中的“格式”,选择“样式”,在弹出的对话框中修改样式名为“常规”的即可)
对于Horizontal,可选的枚举值有:无值(常规),Left(靠左(缩进)),Center(居中),Right(靠右(缩进)),Fill(填充),Justify(两端对齐),CenterAcrossSelection(跨列居中)和Distributed(分散对齐(缩进))
对于Vertical,可选的枚举值有:Top(靠上),Bottom(靠下),Center(居中),Justify(两端对齐)和Distributed(分散对齐)
当我们在Excel中设置了缩进值为5后,在xml表格中我们发现,Alignment变成了:
<Alignment ss:Horizontal="Distributed" ss:Vertical="Distributed" ss:Indent="5"/>
相应的:文字的旋转角度对应于ss:Rotate。若设置了自动换行,则ss:WrapText="1"。文字方向对应于ss:ReadingOrder,有LeftToRight和RightToLeft两个值。
2.Border
Border是设置单元格的边框效果,我们将所有的边框设置上,线条的样式设置为双横线,颜色为红色。得到的效果是
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Double" ss:Weight="3"/>
<Border ss:Position="Left" ss:LineStyle="Double" ss:Weight="3"/>
<Border ss:Position="Right" ss:LineStyle="Double" ss:Weight="3"/>
<Border ss:Position="Top" ss:LineStyle="Double" ss:Weight="3"/>
<Border ss:Position="DiagonalLeft" ss:LineStyle="Double" ss:Weight="3"/>
<Border ss:Position="DiagonalRight" ss:LineStyle="Double" ss:Weight="3"/>
</Borders>
其实颜色的设置没起作用,当我们返回Excel中查看该单元格的格式属性时,会发现刚才设置成红色的地方又变成自动了,即默认的颜色。
3.Font
设置单元格的字体相关属性。我们看看下面的设置
<Font ss:FontName="Times New Roman" x:Family="Roman" ss:Size="14"
ss:Color="#FF0000" ss:Bold="1" ss:Italic="1" ss:StrikeThrough="1"
ss:VerticalAlign="Superscript" ss:Underline="Single"/>
它表示,使用了Times New Roman的字体,字号14,颜色为红色,粗体,斜体,有删除线,上标,有单下划线。
4.Interior
设置单元格的底色以及使用Pattern的样式和颜色
<Interior ss:Color="#FF0000" ss:Pattern="VertStripe" ss:PatternColor="#FFFF00"/>
表示,使用了红色的底色,VertStripe的Pattern,Pattern的颜色为黄色
5.NumberFormat
设置数值的显示效果
当设置为数值,小数点后3位,使用千分位符时:
<NumberFormat ss:Format="#,##0.000_ "/>
数值,小数点后2位,不使用千分位符:
<NumberFormat ss:Format="0.00_ "/>
货币,货币符号¥,2位小数
<NumberFormat ss:Format=""¥"#,##0.00;"¥"/-#,##0.00"/>
货币,货币符号$,2位小数
<NumberFormat ss:Format="/$#,##0.00;/-/$#,##0.00"/>
货币,货币符号US$,2位小数
<NumberFormat ss:Format=""US$"#,##0.00;/-"US$"#,##0.00"/>
货币,货币符号£,2位小数
<NumberFormat ss:Format="[$£-809]#,##0.00;/-[$£-809]#,##0.00"/>
因此,其规律是:表示符号的字符串+千分位号(#,##)+小数位号(2位:0.00)+;/(内部为负数时的情况)/
一般情况下,单位的字符串都是"+单位符号+",其中"表示双引号
会计专用,货币符号¥,2位小数
<NumberFormat
ss:Format="_ "¥"* #,##0.00_ ;_ "¥"* /-#,##0.00_ ;_ "¥"* "-"??_ ;_ @_ "/>
日期 短日期格式
<NumberFormat ss:Format="Short Date"/>
日期 XX年XX月XX日
<NumberFormat ss:Format="[DBNum1][$-804]yyyy"年"m"月"d"日";@"/>
百分比
<NumberFormat ss:Format="Percent"/>
就列举这么多了,基本的规律就是通过给定的字符串来Format数字的输出格式,这些格式也可以自定义的。
6.Protection
<Protection x:HideFormula="1" ss:Protected="0"/>
表示单元格没有锁定,但是隐藏了公式 若为默认值x:HideFormula="0" ss:Protected="1",则两者不显示在xml文档里。
注意:单元格锁定和隐藏公式都必须在工作表处于被保护状态才能生效,而当一个工作表处于被保护状态时,它是不能被保存为xml工作表的。因此,我认为此处是否锁定单元格以及隐藏公式是没有意义的。
代码实现,由于一个工作表可能会用到很多的style,而style的结构是有规律可循的,因此我们可以自定义一些类来描述style
以下是我自定义的相关类的结构
StyleElement类结构
这里的AlignmentElement,BordersElement等均为类名,表示相应的节点,以AlignmentElement为例,其结构如下
其他的节点可类似的做定义。
最后我们需要将style写入xml文件中,无非是根据style的各个属性相应的写入xml文件中。这里就不赘述了。
- C#使用_关于xml表格_Styles节点
- C#使用_关于Xml表格_Xml表格的结构
- 关于C#中使用TreeView来显示XML中的节点
- C# 关于XML遍历新增节点,修改属性小例
- c# xml节点查询
- c# 读取xml节点
- c# 读取xml节点 .
- C# 读取XML 节点
- C#读取XML节点
- C# XML添加节点
- xml关于节点例子
- C#使用_关于CSV文件
- 用C#创建XML节点
- C# XML 获以节点
- C#读取xml节点数据
- 用C#创建XML节点
- C# 添加xml的节点
- C#读取XML每个节点
- C#使用_如何创建既不能被继承又不能被实例化的类
- Boost.Regex 使用
- C#使用_进制转换
- C#使用_关于CSV文件
- C#使用_关于Xml表格_Xml表格的结构
- C#使用_关于xml表格_Styles节点
- C#程序_分形之康托三分线
- PKU 3185 The Water Bowls
- 读书笔记_程序员修炼三部曲之二 单元测试之道 C#版
- [ZZ]我在华为两年半的奋斗史
- java环境变量
- 中断号与中断地址
- 时不我待,再不抓紧,人必老矣!——写在博客前
- 创建虚拟目录