Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Excel导出XML并保留日期格式_Javascript_Xml_Excel_Date - Fatal编程技术网

Javascript 从Excel导出XML并保留日期格式

Javascript 从Excel导出XML并保留日期格式,javascript,xml,excel,date,Javascript,Xml,Excel,Date,许多StackOverflow帖子和其他在线论坛都有类似的问题,但没有一个能真正解决我的问题 我正在从Excel导出一个XML文件。Excel文件包含日期。然而,在XML文件中,这些日期显示为整数——我认为日期是自1900年1月0日以来的第n天 我正在使用JavaScript从XML文件中提取数据,以填充网页中的表 我怀疑解决方案可能有两种不同的形式: 1.在JavaScript中,将整数转换为其表示的日期的方法。 2.强制XML文件从Excel文件获取格式化日期的方法 我显然是XML和Java

许多StackOverflow帖子和其他在线论坛都有类似的问题,但没有一个能真正解决我的问题

我正在从Excel导出一个XML文件。Excel文件包含日期。然而,在XML文件中,这些日期显示为整数——我认为日期是自1900年1月0日以来的第n天

我正在使用JavaScript从XML文件中提取数据,以填充网页中的表

我怀疑解决方案可能有两种不同的形式: 1.在JavaScript中,将整数转换为其表示的日期的方法。 2.强制XML文件从Excel文件获取格式化日期的方法


我显然是XML和JavaScript的新手,因此非常感谢您的帮助。谢谢。

Excel用于xml导出的格式取决于添加的xml架构。这可以显式地创建和添加,或者——正如我在您的案例中所怀疑的那样——由Excel隐式/自动生成

在我的示例中,我有两个列,第一个通过XML模式格式化日期时间,第二个是普通文本,仅用于Excel(列格式)中的日期表示

当我将其导出为XML时,会得到两个看起来完全不同的结果:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dataroot>
    <Tabelle11>
        <Title_1>2009-10-12T00:00:00.000</Title_1>
        <Title_2>40098</Title_2>
    </Tabelle11>
    <Tabelle11>
        <Title_1>2000-01-01T00:00:00.000</Title_1>
        <Title_2>36526</Title_2>
    </Tabelle11>
</dataroot>

2009-10-12T00:00:00.000
40098
2000-01-01T00:00:00.000
36526
当我检查XML模式时(例如,使用“Debug.Print ActiveWorkbook.XmlMaps(1.Schemas(1.XML)),我看到了不同之处(只是片段,而不是完整的文件):


第一列是格式为datetime的模式,第二列是varchar。同样,您可能甚至不知道Excel是如何处理XML数据的,因为此模式是自动生成的(如果我在Excel2003中没有记错的话,有一条消息指示已为您生成了一个模式)

现在如何完成这一点——特别是在现有文件中:我将尝试提取XML模式(参见上文),将其另存为something.xsd,根据需要调整模式并导入此新模式。遗憾的是,您必须再次设置映射(或者尝试以下操作:)。我经常让MS Access生成我的XML模式,即生成所需的表,插入一些值并将表导出为XML(勾选添加模式的选项)

我希望这份大纲能给你一个如何进行的想法

问候


安德烈亚斯其实很简单。。。例如,如果您正在创建自己的“模式”。创建一个xml文件,并假设您有google analytics数据来填充完整的xml文件,每行包含以下三个数据点:

<date>1/1/2012</date>
<page>mywebsite.com</page>
<visits>100000</visits>
1/1/2012
我的网站
100000
当您在导出之前将此xml文件作为excel的数据映射模式导入时,您将得到上面描述的整数。但是,如果将此架构定义为:

<date>2012-01-01</date>
<page>mywebsite.com</page>
<visits>100000</visits>
2012-01-01
我的网站
100000
当您在工作表上组织xml时,Excel将显示日期元素的附加分组。使用值(而不是format())作为列标题,导出将是格式化的日期而不是整数。您不需要从excel或access中进行任何特殊的.xsd提取


关于如何构建自己的模式的示例,我发现这段视频非常精彩:

如何导出XML?我正在使用“开发人员”选项卡上的“导出”按钮。顺便问一下,我使用的是Excel 2007。您是否有能力编辑Excel文件,或者是出于某种原因,在导出之前它必须保持原样?谢谢,Andreas。我有一段时间没有登录,所以我错过了您的回复,但感谢您的帮助。
<date>2012-01-01</date>
<page>mywebsite.com</page>
<visits>100000</visits>