Openxml: 导出excel 设置 cell的格式
2009-07-16 12:12
525 查看
在cell中如果cell中的文本有换行符, 默认是不显示换行的, 只有点了excel 工具栏中的“Wrap Text" 按钮, 才会显示换行, 见下图:
<?xml version="1.0" encoding="utf-8" ?>
<x:styleSheet xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<x:fonts count="1">
<x:font>
<x:sz val="11" />
<x:color theme="1" />
<x:name val="Calibri" />
<x:family val="2" />
<x:scheme val="minor" />
</x:font>
</x:fonts>
<x:fills count="2">
<x:fill>
<x:patternFill patternType="none" />
</x:fill>
</x:fills>
<x:borders count="1">
<x:border>
<x:left />
<x:right />
<x:top />
<x:bottom />
<x:diagonal />
</x:border>
</x:borders>
<x:cellXfs count="2">
<x:xf numFmtId="0" fontId="0" fillId="0" borderId="0" />
<x:xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyAlignment="1">
<x:alignment wrapText="1" />
</x:xf>
</x:cellXfs>
</x:styleSheet>
在创建stylesheet时, 必须创建fonts, Fills,Borders 和cellXfs(CellFormats) 四个节点,
在显示cell是通过StyleIndex 来关联 cellXfs的Index 来改变cell 的显示样式, 注意, 这个index只能从1 开始,因此需要在cellXfs中加两个CellFormat子节点, 我们这里要设置 wrap text, 因此在第二个节点设置applyAlignment 并设wrap Text ="1". 上个关于openxml的帖子, 有人问怎么设置cell的 font,答案就是加一个font 子节点到fonts, 得到index, 再加一个cellformat 子节点 并设置fontid 为刚加的font的index。 把这个cellformat的id 给 要设置的cell的StyleIndex。
初始stylesheet 并加 wraptext style:
private void InitializeStyleSheet()
{
Code
public void WriteNewCell(Row row, string text, string cellName)
{
int index = InsertSharedStringItem2(text, shareStringPart);
Cell cell = new Cell() { CellReference = new StringValue(cellName) };
cell.CellValue = new CellValue(index.ToString());
cell.DataType = new EnumValue<CellValues>(CellValues.SharedString);
cell.StyleIndex = 1;
row.Append(cell);
}
注意 cell.StyleIndex = 1; 1 对应的是stylesheet 中的 cellfortmat 的index。
<?xml version="1.0" encoding="utf-8" ?>
<x:styleSheet xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<x:fonts count="1">
<x:font>
<x:sz val="11" />
<x:color theme="1" />
<x:name val="Calibri" />
<x:family val="2" />
<x:scheme val="minor" />
</x:font>
</x:fonts>
<x:fills count="2">
<x:fill>
<x:patternFill patternType="none" />
</x:fill>
</x:fills>
<x:borders count="1">
<x:border>
<x:left />
<x:right />
<x:top />
<x:bottom />
<x:diagonal />
</x:border>
</x:borders>
<x:cellXfs count="2">
<x:xf numFmtId="0" fontId="0" fillId="0" borderId="0" />
<x:xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyAlignment="1">
<x:alignment wrapText="1" />
</x:xf>
</x:cellXfs>
</x:styleSheet>
在创建stylesheet时, 必须创建fonts, Fills,Borders 和cellXfs(CellFormats) 四个节点,
在显示cell是通过StyleIndex 来关联 cellXfs的Index 来改变cell 的显示样式, 注意, 这个index只能从1 开始,因此需要在cellXfs中加两个CellFormat子节点, 我们这里要设置 wrap text, 因此在第二个节点设置applyAlignment 并设wrap Text ="1". 上个关于openxml的帖子, 有人问怎么设置cell的 font,答案就是加一个font 子节点到fonts, 得到index, 再加一个cellformat 子节点 并设置fontid 为刚加的font的index。 把这个cellformat的id 给 要设置的cell的StyleIndex。
初始stylesheet 并加 wraptext style:
private void InitializeStyleSheet()
{
Code
public void WriteNewCell(Row row, string text, string cellName)
{
int index = InsertSharedStringItem2(text, shareStringPart);
Cell cell = new Cell() { CellReference = new StringValue(cellName) };
cell.CellValue = new CellValue(index.ToString());
cell.DataType = new EnumValue<CellValues>(CellValues.SharedString);
cell.StyleIndex = 1;
row.Append(cell);
}
注意 cell.StyleIndex = 1; 1 对应的是stylesheet 中的 cellfortmat 的index。
相关文章推荐
- winform高效导出Excel带格式设置
- asp.net 导出Excel 设置格式
- DataTable导出excel 设置单元格格式
- net导出excel 并设置格式
- POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】
- POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】
- 在Java中导出word、excel格式文件时JSP页面头的设置
- C#导出Excel,并且设置Excel单元格格式,合并单元格
- C#导出Excel按照指定格式设置单元格属性值
- 导出excel时设置单元格格式(避免类似0100的数字丢失前面的0)
- 利用PHPExcel导出Excel并设置Excel格式
- java 导出EXCEL 日期格式问题 设置日期格式和本机不一样
- 利用PHPExcel导出Excel并设置Excel格式以及数据源
- POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】
- GridView导出数据到Excel时格式设置
- Poi导出excel设置单元格数值格式
- Excel 导出 格式设置
- C#中导出excel的时候设置单元格格式
- GridView导出Excel 设置导出单元格格式
- POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】