把python爬出来的数据,用pymysql插入数据库中

  怎么说呢,这个虽然是装逼的产物,但是还是有一定实用价值的。

  先说说我看到这只鸡腿的时候,是怎么吃的:

  整体内容可以先分为三部分,抓取数据,整理数据,插入到表。

抓取数据:

  拿到网址后,进去看了一下需要的数据都在什么位置,结构了解清楚后就可以准备准备开始把他撸出来了。

  想要数据当然要先发个请求咯:

        #定义一个内置浏览器session
        s = requests.session()

        url = ‘http://www.310win.com/jingcaizuqiu/rangqiushengpingfu/kaijiang_jc_all.html‘

        # header把爬虫伪装的像是正常的访问
        header = {
            ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 ‘,
            ‘Connection‘: ‘keep-alive‘
            }

        # 用requests库的get方法与服务器进行链接
        w = s.get(url, headers=header)

  请求之后再对返回值做一定的处理:

  在这里需要为获取数据做一个动作,因为html中的换行符<br>是单个的,后面提取时会有问题,所以在这里先把它去掉。

        # 用chardet库的detect方法获取网页编码格式,具体的编码格式在encoding这个键对应的值中
        w.encoding = chardet.detect(w.content)[‘encoding‘]

        # 设置好编码格式后,用text方法返回为字符串供beautifulSoup处理
        e = w.text

        # 替换掉其中的符号‘-‘,和换行符```这里不能替换‘-’,不然比分出来缺少,改为下面替换
        z=(e.replace(‘<br>‘,‘‘)).replace(‘<br/>‘,‘‘)

        # 使用BeautifulSoup函数把z转化为一个BeautifulSoup对象,解析器的类型是lxml
        soup = BeautifulSoup(z, ‘lxml‘)

  然后就是想想办法把需要的数据搞出来了:

  首先根据数据位置与标签结构,用class属性获取到需要的内容,

  之后我这里用了个笨办法(大佬掠过),循环把需要的数据写进list中,

  然后顺便把一些数据处理成插sql时需要的格式。

        # 获取class属性为ni,ni2中的td
        list = soup.select(‘tr.ni td‘)
        list2 = soup.select(‘tr.ni2 td‘)

        # 用string方法获取td标签中的数据,写进list
        a = 0
        while a < len(list2):
            for z1 in list[a]:
                MATCH_ID.append(‘2018‘+z1.string[5:10].replace(‘-‘,‘‘)+‘%s‘%z1.string[2:5])
                for x1 in list[a+1]:
                    saishi.append(x1.string)
                    for c1 in list[a+3]:
                        BF.append(c1.string)
                        for v1 in list[a+4]:
                            kedui.append(v1.string)
                            for b1 in list[a+5]:
                                BF_HALF.append(b1.string)
                                for n1 in list[a-2]:
                                    pankou.append(n1.string)
                                    for m1 in list[a-1]:
                                        shuju.append(m1.string)
            for z2 in list2[a]:
                MATCH_ID.append(‘2018‘+z2.string[5:10].replace(‘-‘,‘‘)+‘%s‘%z2.string[2:5])
                for x2 in list2[a+1]:
                    saishi.append(x2.string)
                    for c2 in list2[a+3]:
                        BF.append(c2.string)
                        for v2 in list2[a+4]:
                            kedui.append(v2.string)
                            for b2 in list2[a+5]:
                                BF_HALF.append(b2.string)
                                for n2 in list2[a-2]:
                                    pankou.append(n2.string)
                                    for m2 in list2[a-1]:
                                        shuju.append(m2.string)
            a = a+13

  这个时候需要的数据就拿到了,然后就可以开始吃sql部分了,数据就在爬取和插入之间的小步骤中做处理。

插入到表:

  装好pymysql模块,调用之后连接到数据库,

  这里可以先转换数据格式,再插入,我是在插入的时候转的格式,都一样。

        # 连接数据库
        connect = pymysql.Connect(
                host = ‘****‘,
                port = ****,
                user = ‘****‘,
                passwd = ‘****‘,
                db = ‘****‘,
                charset = ‘utf8‘
            )

        # 也可以先转换数据格式,再插入变量
        # label = list((1, 2, 3, 4, 5, 6, 7, 8, 9, "10"))
        # label_A = [str(i) for i in label]
        # print(label_A)

        # 获取游标
        cursor = connect.cursor()

  最后写条insert into的sql,循环插入所有的数据就ok啦。

  这里还有一个问题,就是爬到的数据可能有为None的情况,insert时要跳过为None的字段,然后我在写判断时就犯了一个二比的错,条件里把None写成str了,实际没有抓到数据给的None是个值,低级错误,罪过罪过,善哉善哉。

  到这里鸡腿就算是吃完了,还剩骨头。

  有兴趣的可以建个表舔一下0.0

  1 import requests
  2 from bs4 import BeautifulSoup
  3 import chardet
  4 import pymysql.cursors
  5 import time
  6 from decimal import *
  7
  8 class Reptilian(object):
  9     def data(self):
 10         # 定义需要的数据
 11         saishi = []
 12         kedui = []
 13         pankou = []
 14         shuju = []
 15         # insetinto sql要用到的数据
 16         BF_HALF = []
 17         MATCH_ID = []
 18         BF = []
 19         BF_ODDS = []
 20         SPF = []
 21         SPF_ODDS = []
 22         RQ = []
 23         RQ_ODDS = []
 24         JQ = []
 25         JQ_ODDS = []
 26         BQC = []
 27         BQC_ODDS = []
 28
 29         #定义一个内置浏览器session
 30         s = requests.session()
 31
 32         # # q是存储爬取信息的文本文件,使用追加模式,就是说后面写入的信息会放在已有的信息后面,这样就不会把之前的信息覆盖掉
 33         # q = open(‘info.txt‘, ‘a‘)
 34         url = ‘http://www.310win.com/jingcaizuqiu/rangqiushengpingfu/kaijiang_jc_all.html‘
 35
 36         # header把爬虫伪装的像是正常的访问
 37         header = {
 38             ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 ‘,
 39             ‘Connection‘: ‘keep-alive‘
 40             }
 41
 42         # 用requests库的get方法与服务器进行链接,返回一个requests.models.Response的类
 43         w = s.get(url, headers=header)
 44
 45         # 用chardet库的detect方法获取网页编码格式,具体的编码格式在encoding这个键对应的值中
 46         w.encoding = chardet.detect(w.content)[‘encoding‘]
 47
 48         # 设置好编码格式后,用text方法把Response这个类转化为字符串供beautifulSoup处理
 49         e = w.text
 50
 51         # 替换掉其中的符号‘-‘,和换行符```这里不能替换‘-’,不然比分出来缺少,改为下面替换
 52         z=(e.replace(‘<br>‘,‘‘)).replace(‘<br/>‘,‘‘)
 53
 54         # 使用BeautifulSoup函数把z转化为一个BeautifulSoup对象,解析器的类型是lxml
 55         soup = BeautifulSoup(z, ‘lxml‘)
 56
 57         # 获取class属性为ni,ni2中的td
 58         list = soup.select(‘tr.ni td‘)
 59         list2 = soup.select(‘tr.ni2 td‘)
 60
 61         # 用string方法获取td标签中的数据,写进list
 62         a = 0
 63         while a < len(list2):
 64             for z1 in list[a]:
 65                 MATCH_ID.append(‘2018‘+z1.string[5:10].replace(‘-‘,‘‘)+‘%s‘%z1.string[2:5])
 66                 for x1 in list[a+1]:
 67                     saishi.append(x1.string)
 68                     for c1 in list[a+3]:
 69                         BF.append(c1.string)
 70                         for v1 in list[a+4]:
 71                             kedui.append(v1.string)
 72                             for b1 in list[a+5]:
 73                                 BF_HALF.append(b1.string)
 74                                 for n1 in list[a-2]:
 75                                     pankou.append(n1.string)
 76                                     for m1 in list[a-1]:
 77                                         shuju.append(m1.string)
 78             for z2 in list2[a]:
 79                 MATCH_ID.append(‘2018‘+z2.string[5:10].replace(‘-‘,‘‘)+‘%s‘%z2.string[2:5])
 80                 for x2 in list2[a+1]:
 81                     saishi.append(x2.string)
 82                     for c2 in list2[a+3]:
 83                         BF.append(c2.string)
 84                         for v2 in list2[a+4]:
 85                             kedui.append(v2.string)
 86                             for b2 in list2[a+5]:
 87                                 BF_HALF.append(b2.string)
 88                                 for n2 in list2[a-2]:
 89                                     pankou.append(n2.string)
 90                                     for m2 in list2[a-1]:
 91                                         shuju.append(m2.string)
 92             a = a+13
 93
 94         # 用string方法获取a标签中的数据,写进list
 95         list3 = soup.select(‘tr.ni a‘)
 96         list4 = soup.select(‘tr.ni2 a‘)
 97         b = 2
 98         while b < len(list4):
 99             for z3 in list3[b]:
100                 BF_ODDS.append(z3.string)
101                 for x3 in list3[b-1]:
102                     SPF_ODDS.append(x3.string)
103                     for c3 in list3[b - 2]:
104                         RQ_ODDS.append(c3.string)
105                         for v3 in list3[b+1]:
106                             JQ_ODDS.append(v3.string)
107                             for b3 in list3[b + 2]:
108                                 BQC_ODDS.append(b3.string)
109             for z4 in list4[b]:
110                 BF_ODDS.append(z4.string)
111                 for x4 in list4[b-1]:
112                     SPF_ODDS.append(x4.string)
113                     for c4 in list4[b - 2]:
114                         RQ_ODDS.append(c4.string)
115                         for v4 in list4[b+1]:
116                             JQ_ODDS.append(v4.string)
117                             for b4 in list4[b + 2]:
118                                 BQC_ODDS.append(b4.string)
119             b = b+8
120
121         # 用string方法获取span标签中的数据,写进list
122         c = 1
123         list5 = soup.select(‘tr.ni span‘)
124         list6 = soup.select(‘tr.ni2 span‘)
125         while c < len(list6):
126             for z5 in list5[c]:
127                 SPF.append(z5.string)
128                 for x5 in list5[c-1]:
129                     RQ.append(x5.string)
130                     for c5 in list5[c+2]:
131                         JQ.append(c5.string)
132                         for v5 in list5[c + 3]:
133                             BQC.append(v5.string)
134             for z6 in list6[c]:
135                 SPF.append(z6.string)
136                 for x6 in list6[c-1]:
137                     RQ.append(x6.string)
138                     for c6 in list6[c+2]:
139                         JQ.append(c6.string)
140                         for v6 in list6[c + 3]:
141                             BQC.append(v6.string)
142             c = c+5
143         return MATCH_ID,BF_HALF,BF,BF_ODDS,SPF,SPF_ODDS,RQ,RQ_ODDS,JQ,JQ_ODDS,BQC,BQC_ODDS
144
145     # 爬取的数据
146     # try:
147     #     d = 0
148     #     for d in range(len(MATCH_ID)):
149     #         print(‘%s‘ % MATCH_ID[d],BF_HALF[d],BF[d],BF_ODDS[d],SPF[d],SPF_ODDS[d],RQ[d],RQ_ODDS[d],JQ[d],JQ_ODDS[d],BQC[d],BQC_ODDS[d])
150     #         d = d+1
151     # except:
152     #     print(‘-----------------------‘)
153
154     def insert(self):
155
156         # 定义当前时间
157         now = time.strftime(‘%Y%m%d‘, time.localtime())
158
159         # 调用data的返回值,分别定义为sql所用字段
160         MATCH_ID = Reptilian.data()[0],
161         BF_HALF = Reptilian.data()[1],
162         BF = Reptilian.data()[2],
163         BF_ODDS = Reptilian.data()[3],
164         SPF = Reptilian.data()[4],
165         SPF_ODDS = Reptilian.data()[5],
166         RQ = Reptilian.data()[6],
167         RQ_ODDS = Reptilian.data()[7],
168         JQ = Reptilian.data()[8],
169         JQ_ODDS = Reptilian.data()[9],
170         BQC = Reptilian.data()[10],
171         BQC_ODDS = Reptilian.data()[11]
172
173         # 连接数据库
174         connect = pymysql.Connect(
175                 host = ‘‘,
176                 port = ,
177                 user = ‘‘,
178                 passwd = ‘‘,
179                 db = ‘‘,
180                 charset = ‘utf8‘
181             )
182
183         # 也可以先转换数据格式,再插入变量
184         # label = list((1, 2, 3, 4, 5, 6, 7, 8, 9, "10"))
185         # label_A = [str(i) for i in label]
186         # print(label_A)
187
188         # 获取游标
189         cursor = connect.cursor()
190
191         # VALUES从list中第一个值开始插入,循环至最后一个值
192         Value = 0
193         while Value <= len(MATCH_ID[0]):
194             if BF_ODDS[0][Value] != None and JQ_ODDS[0][Value] != None and RQ_ODDS[0][Value] != None and SPF_ODDS[0][Value] != None and BQC_ODDS[Value] != None:
195                 sql = "INSERT INTO bdwork_test.T_LOT_FOOT_MATCH_RESULT(MATCH_ID,BF_HALF,BF,SPF,RQ,JQ,BQC,SUB_TIME,UPDATE_TIME,BF_ODDS,SPF_ODDS,RQ_ODDS,JQ_ODDS,BQC_ODDS)VALUES(‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘)"  %(MATCH_ID[0][Value],BF_HALF[0][Value],BF[0][Value],SPF[0][Value],RQ[0][Value],JQ[0][Value],BQC[0][Value],now,now,float(BF_ODDS[0][Value]),float(SPF_ODDS[0][Value]),float(RQ_ODDS[0][Value]),float(JQ_ODDS[0][Value]),float(BQC_ODDS[Value]))
196                 cursor.execute(sql)
197                 connect.commit()
198                 Value += 1
199                 if Value == len(MATCH_ID[0]):
200                     break
201             else:
202                 if SPF_ODDS[0][Value] == None:
203                     sql = "INSERT INTO bdwork_test.T_LOT_FOOT_MATCH_RESULT(MATCH_ID,BF_HALF,BF,SPF,RQ,JQ,BQC,SUB_TIME,UPDATE_TIME,BF_ODDS,RQ_ODDS,JQ_ODDS,BQC_ODDS)VALUES(‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘)"  %(MATCH_ID[0][Value],BF_HALF[0][Value],BF[0][Value],SPF[0][Value],RQ[0][Value],JQ[0][Value],BQC[0][Value],now,now,float(BF_ODDS[0][Value]),float(RQ_ODDS[0][Value]),float(JQ_ODDS[0][Value]),float(BQC_ODDS[Value]))
204                     cursor.execute(sql)
205                     connect.commit()
206                     Value += 1
207                     if Value == len(MATCH_ID[0]):
208                         break
209                 elif BF_ODDS[0][Value] == None:
210                     sql = "INSERT INTO bdwork_test.T_LOT_FOOT_MATCH_RESULT(MATCH_ID,BF_HALF,BF,SPF,RQ,JQ,BQC,SUB_TIME,UPDATE_TIME,SPF_ODDS,RQ_ODDS,JQ_ODDS,BQC_ODDS)VALUES(‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘)" % (
211                     MATCH_ID[0][Value], BF_HALF[0][Value], BF[0][Value], SPF[0][Value], RQ[0][Value],
212                     JQ[0][Value], BQC[0][Value], now, now,float(SPF_ODDS[0][Value]), float(RQ_ODDS[0][Value]),
213                     float(JQ_ODDS[0][Value]), float(BQC_ODDS[Value]))
214                     cursor.execute(sql)
215                     connect.commit()
216                     Value += 1
217                     if Value == len(MATCH_ID[0]):
218                         break
219                 elif JQ_ODDS[0][Value] == None:
220                     sql = "INSERT INTO bdwork_test.T_LOT_FOOT_MATCH_RESULT(MATCH_ID,BF_HALF,BF,SPF,RQ,JQ,BQC,SUB_TIME,UPDATE_TIME,BF_ODDS,SPF_ODDS,RQ_ODDS,BQC_ODDS)VALUES(‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘)" % (
221                     MATCH_ID[0][Value], BF_HALF[0][Value], BF[0][Value], SPF[0][Value], RQ[0][Value], JQ[0][Value],
222                     BQC[0][Value], now, now, float(BF_ODDS[0][Value]),float(SPF_ODDS[0][Value]), float(RQ_ODDS[0][Value]),
223                     float(BQC_ODDS[Value]))
224                     cursor.execute(sql)
225                     connect.commit()
226                     Value += 1
227                     if Value == len(MATCH_ID[0]):
228                         break
229                 elif RQ_ODDS[0][Value] == None:
230                     sql = "INSERT INTO bdwork_test.T_LOT_FOOT_MATCH_RESULT(MATCH_ID,BF_HALF,BF,SPF,RQ,JQ,BQC,SUB_TIME,UPDATE_TIME,BF_ODDS,SPF_ODDS,JQ_ODDS,BQC_ODDS)VALUES(‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘)" % (
231                     MATCH_ID[0][Value], BF_HALF[0][Value], BF[0][Value], SPF[0][Value], RQ[0][Value], JQ[0][Value],
232                     BQC[0][Value], now, now, float(BF_ODDS[0][Value]),float(SPF_ODDS[0][Value]),
233                     float(JQ_ODDS[0][Value]), float(BQC_ODDS[Value]))
234                     cursor.execute(sql)
235                     connect.commit()
236                     Value += 1
237                     if Value == len(MATCH_ID[0]):
238                         break
239                 elif BQC_ODDS[Value] == None:
240                     sql = "INSERT INTO bdwork_test.T_LOT_FOOT_MATCH_RESULT(MATCH_ID,BF_HALF,BF,SPF,RQ,JQ,BQC,SUB_TIME,UPDATE_TIME,BF_ODDS,SPF_ODDS,RQ_ODDS,JQ_ODDS)VALUES(‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘)" % (
241                     MATCH_ID[0][Value], BF_HALF[0][Value], BF[0][Value], SPF[0][Value], RQ[0][Value], JQ[0][Value],
242                     BQC[0][Value], now, now, float(BF_ODDS[0][Value]), float(SPF_ODDS[0][Value]),float(RQ_ODDS[0][Value]),float(JQ_ODDS[0][Value]))
243                     cursor.execute(sql)
244                     connect.commit()
245                     Value += 1
246                     if Value == len(MATCH_ID[0]):
247                         break
248             print(‘插入第%s条数据‘ % Value)
249         # 关闭连接
250         cursor.close()
251         connect.close()
252         return  print(‘执行完成‘)
253
254 if __name__ == ‘__main__‘:
255         Reptilian = Reptilian()
256         Reptilian.insert()

  

原文地址:https://www.cnblogs.com/lvzhenhua/p/9668901.html

时间: 2024-10-01 00:29:06

把python爬出来的数据,用pymysql插入数据库中的相关文章

python爬取数据并保存到数据库中(第一次练手完整代码)

1.首先,下载需要的模块requests, BeautifulSoup, datetime, pymysql(注意,因为我用的python3.7,不支持mysqldb了),具体的下载方法有pip下载,或者使用Anaconda版本python的童鞋可以使用conda下载. 2.创建conndb,py,包含数据库的连接断开,增删改查等操作: #!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql def conn_db(): # 连接数

将 text 文件里的数据导入到 mysql 数据库中

如题,将 text 文件里的数据导入到 mysql 数据库中. 我自己具体的实现可以分为几种了: 1.写你擅长的程序设计语言 进行读写文件,然后连接数据库,进行写入: 2.在 mysql 里直接进行运行 sql 脚本语句,进行导入. 第一个现在就不再说了,简单. 现在就说说怎么直接将 .text 文件利用 sql 语句 进行导入. 1.首先在数据库中新建一个表(这里的表至少要和 你数据里的字段进行匹配,即一行存在的字段数): 2.运行sql脚本语句: 比如: 你的文件为 D:/field.txt

使用SqlBulkCopy将DataTable中的数据批量插入数据库中

#region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// <summary> /// 注意:DataTable中的列需要与数据库表中的列完全一致. /// </summary> /// <param name="conStr">数据库连接串</param> /// <param name="strTableName">数据库中对应的表名</param> //

使用redis作为缓存,数据还需要存入数据库中吗?(转)

转自https://blog.csdn.net/wypersist/article/details/79955704 使用redis作为缓存,数据还需要存入数据库中吗? 我的答案是: 1redis只是缓存,不是数据库如mysql,所以redis中有的数据库,mysql中一定有. 2用户请求先去请求redis,如果没有,再去数据库中去读取. 3redis中缓存一些请求量比较大的数据(这些缓存数据,mysql中一定也是有的),没必要所有数据都缓存到redis中. 5之所以从缓存中拿数据会快,是因为缓

Python爬取房产数据,在地图上展现!

小伙伴,我又来了,这次我们写的是用python爬虫爬取乌鲁木齐的房产数据并展示在地图上,地图工具我用的是 BDP个人版-免费在线数据分析软件,数据可视化软件 ,这个可以导入csv或者excel数据. 首先还是分析思路,爬取网站数据,获取小区名称,地址,价格,经纬度,保存在excel里.再把excel数据上传到BDP网站,生成地图报表 本次我使用的是scrapy框架,可能有点大材小用了,主要是刚学完用这个练练手,再写代码前我还是建议大家先分析网站,分析好数据,再去动手写代码,因为好的分析可以事半功

python爬取网页数据

python时间戳 将时间戳转为日期 #!/usr/bin/python # -*- coding: UTF-8 -*- # 引入time模块 import time #时间戳 timeStamp = 1581004800 timeArray = time.localtime(timeStamp) #转为年-月-日形式 otherStyleTime = time.strftime("%Y-%m-%d ", timeArray) print(otherStyleTime) python爬

Scrapy爬取全站数据并存储到数据库和文件中

scrapy五大核心组件简介 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 下载器(Downloader) 用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的) 爬虫(Spiders) 爬虫

EXCEL表数据导入到ORACLE数据库中

将EXCEL表导入ORACLE数据库中 一.建立表 1.建立表 2.查询表 select * from yy; 二.导入程序 在excel中找到需要导入的数据 2.将excel中的数据另存为文本文件(有制表符分割的) 3.在pl*sql中选择tools-->text importer,在出现的窗口中选择"Data from Textfile",然后再选择"Open data file", 在弹出的文件选择框中选中保存有数据的文本文件,此时将会看到data fr

Excel表数据导入Sql Server数据库中

Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型(注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2. 我们用SELECT * FROM  OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel  5.0;DatabASE=[Excel表