将淘宝数据包导入自己的商城系统

淘宝网有一个淘宝助理,可以方便的将淘宝店的商品资源导出成csv格式的数据包。很多商城系统为了能快速输入商品,都会要求开发者能最大限度的利用淘宝数据包直接导入产品数据。

当然,数据包的产品字段与商城的产品表字段肯定不可能完全一致,但"宝贝名称","宝贝价格","宝贝描述"这三个字段,几乎是所有商城系统都有的.


下面是二种处理方法:

一、直接分析csv

1.淘宝的csv数据包是用"\t"做为字段间的分隔符,每行数据是用"\n"做为行分隔符
2.要注意的是:宝贝描述(html代码)本身也会包含换行符号,不过不是"\n",而是"\r\n"---幸好是这样,不然的话,宝贝描述本身的换行符与数据每行的分隔符混在一起,就很难区分了.

下面是示例关键代码:

if (IsPostBack)
 {
       HttpFileCollection fc = Request.Files;
                 
        for (int i = 0; i < fc.Count; i++)
         {
                HttpPostedFile _file = fc[i];
                string ext = Path.GetExtension(_file.FileName).ToLower();
                string type = _file.ContentType;
                if (ext == ".csv" && type == "application/vnd.ms-excel")
                    {
                        StreamReader sr = new StreamReader(_file.InputStream);
 
                        string sHeader = sr.ReadLine();
                        string sBody = sr.ReadToEnd();
 
                        string sTemp = sBody.Replace("\r\n", "");//将宝贝描述html代码中的"\r\n"去掉
 
                 string[] arrData = sTemp.Split('\n'); //这里已经将每行的数据保存到数组arrData里了,数组里的每个元素再用"\t"拆分,就是每行各字段的值

优缺点:通用性强,也不依赖于其它任何组件,简单高效。但是如果以后淘宝的html编辑器修改了,比如保存时把"\r\n"换成"\n",这种方法就不管用了.


二、借用oledb把数据包当作db来操作

oledb可以方便的操作access,excel等内容,我们可以把cvs文件在excel里另存为xls格式,然后就可以用oledb连接,用sql来查询了

HttpFileCollection fc = Request.Files;
 
                if (fc.Count <= 0) {
                    Utils.Alert("请先上传数据包!", "javascript:window.history.back");
                }
 
                
                for (int i = 0; i < fc.Count; i++)
                {
                    HttpPostedFile _file = fc[i];
                    string ext = Path.GetExtension(_file.FileName).ToLower();
                    string type = _file.ContentType;
                    if (ext == ".xls" && (type == "application/octet-stream"))
                    {
                        string _path = Server.MapPath("/upload/xls/");
                        Utils.CreateDir(_path);
                        string _filePath = _path + "product.xls";
                        _file.SaveAs(_filePath);//先保存到服务器
 
                        DataTable dtTable = new DataTable();
 
                        #region
                        using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + _filePath + ";Extended Properties=Excel 8.0;"))
                        {
                            conn.Open();
 
                            //获取Sheet的名字。
                            DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" });
                            OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + schemaTable.Rows[0]["TABLE_NAME"] + "]", conn);//默认查询第一个工作表
                            try
                            {
                                adapter.Fill(dtTable);
                            }
                            catch (Exception ex)
                            {
                                //...
                            }
                        }
 
                        //to do list。。。
 
                    }                   
                    else {
                        Utils.Alert("数据包格式不对!", "javascript:window.history.back()");
                    }
                }

优缺点:使用方便,可以把数据包当成常规的DataTable来操作,方便了数据库开发人员。但是服务器上必须要有oledb组件(而且oledb在64位系统下默认是跑不起来的)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WSTMall 是一款基于thinkphp 3.2进行开发的多商户O2O开源系统 ,是一款能够帮助企业及个人快速构建O2O(线上到线下)服务体系的系统 ,全方位助力创业团队的快速成长及商业变现! 为了更好地兼容系统,我们建议使用PHP5.3以上环境运行WSTMall。后期我们新增功能主要依开发计划以及参考用户在本网站提出的建议,希望更多用户朋友能通过本站向我们提出更多的宝贵意见。 本次修订版主要解决以下问题: 1.新增WSTMall商品详情商品二维码。 2.新增店铺、商品的收藏功能。 3.新增在线支付的流水号号记录。 4.详情新增批量上传图片的功能。 5.新增商品导入功能。 6.后台商品列表新增“精品”“推荐”商品筛选,新增系统分类的筛选。 7.新增商品批量操作订单的操作功能,如-受理、打包、配送的订单操作。 8.购物车中加入店铺QQ。 9.调整注册页、登录页布局。 10.期望送达时间与店铺的营业时间关联。 11.修复购物车两个全选功没起作用的bug。 12.修复商品详情页图片没限制宽度体验性欠佳的BUG。 13.修复搜索时输入空格被转为+号,导致搜索结果不正确的BUG。 14.删除店铺的时候一起删除店铺的登录账号并且下架店铺的所有商品。 15.把店铺改为未审核或者拒绝时,也将店铺的商品状态改为下架以及未审核。 16.商品搜索时搜索关键字可通过空格分割进行搜索。 17.修复购物车修改购买数量时总价格错误的BUG。 18.我是卖家-店铺设置-滚动广告,给图片增加点击的链接。 19.修复商品详情,商品介绍没有设置自动换行的bug。 20.商品详情-商品评价排序修改。 21.修复注册无法输入@的bug。 22.修复已删除店铺在店铺街还显示的bug。 23.修复用户提到的首页图片模糊问题。 24.商品名称输入长度增加长度。 25.修复商家二级商品分类双击隐藏失败的bug。 26.修复商品搜索获取价格分类出错的bug。 27.修复在线支付失败的bug。 28.后台商品列表修改。 *若已安装的用户请参照以下步骤: 1.执行wstmall/Upgrade/1.4.0.sql进行数据库升级。 2.将wstmall/Upgrade/Upgrade里面的程序拷贝到网站WSTMall根目录下覆盖。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值