Open XML格式化Excel数值

Open xml 中格式化Excel 中的数值时,需要使用NumberingFormat类,当Excel序列化成xml的时候,Numberingformat对象会被序列化成x:NumFmt。

NumFormat元素用于指定数值型数据是怎么格式化和呈现出来的。等同于在Excel上选中单元格后选择数值格式,如下图

指定一个单元格的数值格式有以下几个步骤:

1. 创建一个数值格式的NumberingFormat,并设置一个Id(自定义),指定FormatCode,FormatCode可以是自定义的Code,也可以是一些系统约定的格如:"@"标示文本格式

NumberingFormat numberingFormat1 = new NumberingFormat() { NumberFormatId = id, FormatCode = formatStr };// "#0.00######"
            formats.Append(numberingFormat1);

注:系统约定的格式有下面这些:

ID

formatCode

0

General

1

0

2

0.00

3

#,##0

4

#,##0.00

9

0%

10

0.00%

11

0.00E+00

12

# ?/?

13

# ??/??

14

mm-dd-yy

15

d-mmm-yy

16

d-mmm

17

mmm-yy

18

h:mm AM/PM

19

h:mm:ss AM/PM

20

h:mm

21

h:mm:ss

22

m/d/yy h:mm

37

#,##0 ;(#,##0)

38

#,##0 ;[Red](#,##0)

39

#,##0.00;(#,##0.00)

40

#,##0.00;[Red](#,##0.00)

45

mm:ss

46

[h]:mm:ss

47

mmss.0

48

##0.0E+0

49

@

把它添加到styleSheet的NumberingFormats中,

用这个numberFormatId创建CellFormat,添加到stylesheet的Cellformats中,返回Index

 public static UInt32Value CreateCellFormat(
           Stylesheet styleSheet,
           UInt32Value fontIndex,
           UInt32Value fillIndex,
           UInt32Value numberFormatId)
        {
            CellFormat cellFormat = null;
            int i = 0;

            if (cellFormat == null)
            {
                cellFormat = new CellFormat();
                //isNew = true;
            }

            if (fontIndex != null)
                cellFormat.FontId = fontIndex;

            if (fillIndex != null)
                cellFormat.FillId = fillIndex;

            if (numberFormatId != null)
            {
                cellFormat.NumberFormatId = numberFormatId;
                cellFormat.ApplyNumberFormat = BooleanValue.FromBoolean(true);
            }
            //if (isNew)
                styleSheet.CellFormats.Append(cellFormat);

            UInt32Value result = styleSheet.CellFormats.Count;
            styleSheet.CellFormats.Count++;
            return result;
        }

最后指定单元格的StyleIndex为上面创建的NumberingFormat在

cell.StyleIndex = _textNumberStyleId;

OK.

示例代码下载地址:

http://files.cnblogs.com/files/Hcsdn/ExcelDataImporter.rar

示例代码调用方法如下:

System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("server=.;database=demojc;user id=sa;password=!3323");
            System.Data.SqlClient.SqlDataAdapter com = new System.Data.SqlClient.SqlDataAdapter("SELECT U.U_UserID,U.U_FirstName,Cast(u.U_F_ID as nvarchar(10)) FROM U", conn);
            System.Data.DataSet ds = new DataSet();
            com.Fill(ds);
            ManuOnline.OpenXmlAnalysisReports.DataImporter.ImportData(@"E:\1.xlsx", "Sheet1", ds.Tables[0], null);

时间: 2024-10-25 18:52:47

Open XML格式化Excel数值的相关文章

【Python】Xml To Excel

[Python3] 之前做的入门练习里有一题将excel文件转化为xml文件,这回补上逆向转换→xml to excel 用的还是beautifulsoup. 主要还是:①读取待处理文件文本内容 ②处理文本写入数据到所需格式文件中 原xml文件如下: <?xml version="1.0"?> <doc> <taxML cnName="增值税发票开具明细" xmlns="http://www.chinatax.gov.cn/d

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ?Copyright 蕃薯耀 2017年9月13日 http://www.cnblogs.com/fanshuyao/ 直接上代码: import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.ref

java做的一个xml转Excel工具,基于maven工程

说明:适合数据库导出为xml时转成Excel 本工具将上传至GitHub:https://github.com/xiaostudy/xiaostudyAPI3 doc4j的maven依赖 1 <!--xml解析的dom4j--> 2 <!-- https://mvnrepository.com/artifact/dom4j/dom4j --> 3 <dependency> 4 <groupId>dom4j</groupId> 5 <arti

JAVA XML格式化输出

import org.apache.xml.serialize.OutputFormat; import org.apache.xml.serialize.OutputFormat; import org.apache.xml.serialize.XMLSerializer; import org.w3c.dom.Document; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import javax.xml.

Notepad++加上xml格式化的功能

工作中需要用代码创建一个XML文件,创建完发现XML内容都处在同一行,导致非常不容易查看清楚XML代码.于是习惯性地用 Notepad++查看,想用它来对XML代码格式化一下. 于是找到了TextFX characters这个插件,可是该插件安装后不能正常使用,点击重载libTidy.dll这个文件,系统提示缺少libTidy.dll这个文件. 既然是缺少文件那好办,下载一个就行了.下载TextFX_Config.zip后解压,将tidy文件夹放入Notepad++安装目录下的\plugins\

XML格式化及解析

XML格式化工具:notepad++   下载地址 http://rj.baidu.com/soft/detail/13478.html?ald    一个教程地址:http://jingyan.baidu.com/album/4b07be3c69172648b380f383.html 一个很好的notepad教程地址: http://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htmls/npp_func_add_comment.

C# 读写xml、excel、word、access

这里只是起个头,不做深入展开,方便以后用到参考 读写xml,主要使用.net  的xml下的document using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Xml;using System.Xml.Serialization; public static void GetAreaCodes(string path,out

python xml转excel

因公司业务需要,临时写的一段代码: from xml.etree import ElementTree import xlrd import xlwt # 读取xml def read_xml(path): print("read_xml start...") root = ElementTree.fromstring(path) # 读取row子节点 rows = root.findall('ROW') return rows def open_excel(path): try: d

notepad++插件实现json、xml格式化

notepad++比较出色的免费的数据编辑.格式化工具... 现在json.xml文件很流行.格式化也是必须的,方便查看关键信息! 01.下载notepad++及相关插件 npp_7.5.5-x86: https://files.cnblogs.com/files/xiaochina/npp_7.5.5-x86.zip npp-json: https://files.cnblogs.com/files/xiaochina/NPPJSONViewer1_19vFix.zip npp-xml: ht