电子商务网站导入Excel数据的设计与实现

更新时间:2024-03-31 作者:用户投稿原创标记本站原创 点赞:9015 浏览:33744

[摘 要]本文在分析ExcelXML表格文件格式的基础上,论述了利用XML、PHP技术将Excel工作表数据导入到网站数据库的实现方法,并给出实例.

[关 键 词]Excel电子商务网站PHP

一、引言

在互联网络高速发展的今天,众多企业纷纷建立了各自的电子商务网站.本文论述了利用PHP、XML技术在网站中导入Excel数据的实现方法.

二、相关技术简介

1.XML技术.XML是Web上的数据表示和交换的标准,允许Inter的应用程序之间交换数据,并将数据的格式和内容与处理方法分离开来.XML具有良好的数据存储格式、开放性、可扩展性、自描述性、高度的结构化、便于网络传输等特性.

2.Excel2003的XML支持.微软的Office2003增加了XML的支持功能.在Excel2003中通过添加XML架构定义(XSD文件)到工作簿,提高本机XML的支持.可以在Excel电子表格和XML架构之间创建一个映像,轻松地导入从其他数据库和应用程序中创建的XML数据,将XML元素从XML架构中映像到Excel工作表的单元格,也可将Excel工作表数据导出为XML数据,用于与其他数据库和应用程序的交互.

3.PHP和MySQL数据库.PHP是当前流行的开发网站应用程序的一种Web怎么写作器脚本语言,PHP提供的DOM解析器可以处理XML文档.DOM解析器一次性地将整个XML文档读到内存,并且DOM解析器为XML文档的每个元素创建一个树型结构,在内存中保存其树型结构.MySQL是一个免费的SQL数据库怎么写作器软件,广泛应用于网站的后台数据库.PHP和MySQL的组合是构建商务网站的一种解决方案.

三、Excel数据导入到网站的数据库的实现

下面以网上书店管理系统为例,介绍如何将Excel文件中的图书信息导入到网站数据库的实现过程.这里以MySQL作为网站的后台数据库.

1.将Excel工作表另存为ExcelXML表格文档.在Excel2003中可以将工作表另存为XML表格文档.ExcelXML表格文档实际上是文本文件,它直接根据Excel工作表的数据类型,将工作表保存为XML文档,可以在Excel中打开XML表格文档并且象标准Excel电子表格一样进行编辑.上述图书信息的Excel工作表另存为XML表格文档后,其XML部分内容如下:

<Workbook>

<Worksheetss:Name等于“Sheet1”>

<Tabless:ExpandedColumnCount等于”3”ss:ExpandedRowCount等于”150”>

...<Row>

<Cell><Datass:Type等于“String”>电子商务概论</Data></Cell>

<Cell><Datass:Type等于“String”>北京大学出版社</Data></Cell>

<Cell><Datass:Type等于“Number”>23.6</Data></Cell>

</Row>...</Table>...</Worksheet>

</Workbook>

分析上面的部分XML内容格式,得到XML表格文档的根元素是<Workbook>,代表一个工作簿.在<Workbook>根元素下,<Worksheet>子元素定义当前工作簿里的工作表,其ss:Name属性指定工作表名称,在一个有效的XML表格文档里,至少需要该元素的一个实例.每个<Worksheet>元素包含一个<Table>元素,定义一个工作表的属性和内容,其中ss:ExpandedColumnCount属性指定工作表的总列数,ss:ExpandedRowCount属性指定工作表的总行数.<Table>元素的子元素是<Row>,每个<Row>元素包含一个或者多个<Cell>元素,而<Cell>元素又包含<Data>元素,指定单元格的值.因此工作表中每行数据由一个<Row>元素来定义,每个单元格由<Cell>元素定义.

2.设计ExcelXML表格文档导入到网站数据库的程序.对于另存的ExcelXML表格文档,通过访问网站提供的表单页面和程序,利用HTTP协议,将它上传到网站,由Web怎么写作器端的PHP脚本程序对上传的XML文档进行解析,读取其每个<Row>元素的数据,作为一个新记录插入到MySQL数据库.导入ExcelXML表格文档的程序设计如下:

(1)创建ExcelXML表格的XML文档对象.PHP的全局数组$_FILES存放了有关上传文件的信息.检测设上传表单的文件域名为file,$_FILES['file']['tmp_name']数组元素就存放了上传的临时文件名.下面代码根据上传的XML文档,创建一个文档对象.$dom等于DOMDocument::load($_FILES['file']['tmp_name']),


(2)读取XML文档的指定元素.利用文档对象的getElementsByTagName方法获取XML文档中指定的所有子元素.下面代码返回XML文档中所有<Row>元素及其子孙元素组成的对象集合.$rows等于$dom->getElementsByTagName('Row'),根据上述设计思想,下面的PHP程序功能是读取上传的ExcelXML表格文档,外循环读取每个<Row>元素对应的对象,内循环读取一个<Row>元素对象中的每个<Cell>子元素对象,由$cell->nodeValue属性得到<Cell>元素的值,即其中<Data>元素的内容.根据读取的一行数据内容构建一条INSERT命令,将新记录插入到MySQL数据库.

<php

if($_FILES['file']['tmp_name']){

$dom等于DOMDocument::load($_FILES['file']['tmp_name']),

$rows等于$dom->getElementsByTagName('Row'),

foreach($rowsas$row){

$cells等于$row->getElementsByTagName('Cell'),

$vals等于“”,

foreach($cellsas$cell)

$vals等于$vals.“'”.$cell->nodeValue.“'”,

$vals等于LEFT($vals,STRLEN($vals)-1),

$sql等于“insertintoBookStore(booktitle,publishor,price)values(“.$vals.“),”,

mysql_query($sql,$conn),

}}}

四、结束语

本文介绍的Excel数据导入程序是针对某一种格式的Excel工作表的.利用这种Excel数据导入方法,实现原始数据到网站数据库的自动导入,避免了大量数据重新输入的问题,提高了管理人员的工作效率,可应用于商务网站管理平台.