6359 5

[问答] EXCEL批量导入网站数据 [推广有奖]

  • 0关注
  • 1粉丝

大专生

61%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1228 点
帖子
32
精华
0
在线时间
42 小时
注册时间
2013-9-10
最后登录
2025-6-16

楼主
懒洋洋老爷爷 发表于 2015-1-24 15:41:09 |AI写论文
20论坛币

EXCEL批量导入网站数据


请教各路大神,江湖急救!!~


因为本科毕设,需要中国期货的交易数据,但是没有现成的数据库,需要去交易所网站一天天的下载。如果手动复制粘贴的话数据量太大了,在这里希望会编程的大神们给小女子支支招。

数据在郑州商品期货交易所:http://www.czce.com.cn/portal/jysj/mrhq/A091101index_1.htm
时间起始是2005/5/9~2009/12/31

每日数据只在网页上显示,没有下载的链接,比如2005/5/9的交易数据在:http://www.czce.com.cn/portal/exchange/jyxx/hq/hq20050509.html (链接是有规律的,只要改交易日期就可以链接到那一天)
无标题.png
我用EXCEL引入外部数据,得一遍遍的输网址链接,工作量太大,所以想问问有没有可以批量操作的方法。

希望的结果是,每一个期货品种一张表,按照时间顺序排列,
不行的话,把图中这些原始日度数据按照一天天接成一张表格也行~

先多谢各位了!~








最佳答案

幸福摩天轮GP 查看完整内容

每一个期货品种一张表,按照时间顺序排列,数据在2011年以前是全部一起下载的。只有在以后才是分类的。 先建一个空白工作表,按ALT+F11,点击sheet1,插入模块(这样数据就能在同一个工作薄中),然后复制以下代码: Sub AAA() Dim A, B, C As Date, i As Integer, D, E As Variant On Error Resume Next A = #5/9/2005# B = #12/31/2009# E = DateDiff("D", A, B) For i = 0 To E C = A + i D = Format(C, "YYYYMMDD") Wo ...
关键词:EXCEL 批量导入 xcel exce 网站数据 EXCEL 网站数据导入 批量 EXCEL批量

回帖推荐

幸福摩天轮GP 发表于3楼  查看完整内容

业余爱好者一个,写了个代码,将就用吧.别忘记了我的论坛币. Private Sub CommandButton1_Click() Dim A, B, C As Date, i As Integer, D, E, F As Variant On Error Resume Next A = #5/31/2005# B = #12/31/2009# For i = 0 To 1675 C = A + i D = Format(C, "YYYYMMDD") With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.czce.com.cn/portal/exchange/jyxx/hq/hq" & D & ".html", Destination: ...

幸福摩天轮GP 发表于2楼  查看完整内容

每一个期货品种一张表,按照时间顺序排列,数据在2011年以前是全部一起下载的。只有在以后才是分类的。 先建一个空白工作表,按ALT+F11,点击sheet1,插入模块(这样数据就能在同一个工作薄中),然后复制以下代码: Sub AAA() Dim A, B, C As Date, i As Integer, D, E As Variant On Error Resume Next A = #5/9/2005# B = #12/31/2009# E = DateDiff("D", A, B) For i = 0 To E C = A + i D = Format(C, "YYYYMMDD") Wo ...

本帖被以下文库推荐

沙发
幸福摩天轮GP 发表于 2015-1-24 15:41:10
每一个期货品种一张表,按照时间顺序排列,数据在2011年以前是全部一起下载的。只有在以后才是分类的。
先建一个空白工作表,按ALT+F11,点击sheet1,插入模块(这样数据就能在同一个工作薄中),然后复制以下代码:
Sub AAA()
Dim A, B, C As Date, i As Integer, D, E As Variant
On Error Resume Next
A = #5/9/2005#
B = #12/31/2009#
E = DateDiff("D", A, B)
For i = 0 To E
C = A + i
D = Format(C, "YYYYMMDD")
Worksheets.Add(before:=Worksheets(1)).Name = D
With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.czce.com.cn/portal/exchange/jyxx/hq/hq" & D & ".html", Destination:=Range("A1"))
                .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SaveData = True
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "3"
        .Refresh BackgroundQuery:=False
         End With
Next i
End Sub
运行就可以了,至于2011年以后的分类数据下载问题,你改改Connection:="
即可。这样的工作很简单,至此,问题已经解决啦。
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
客初 + 20 + 20 热心帮助其他会员
1051541722 + 2 + 2 + 2 热心帮助其他会员

总评分: 经验 + 20  论坛币 + 20  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

藤椅
幸福摩天轮GP 发表于 2015-3-6 15:34:36
业余爱好者一个,写了个代码,将就用吧.别忘记了我的论坛币.
Private Sub CommandButton1_Click()
Dim A, B, C As Date, i As Integer, D, E, F As Variant
On Error Resume Next
A = #5/31/2005#
B = #12/31/2009#
For i = 0 To 1675
C = A + i
D = Format(C, "YYYYMMDD")

       With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.czce.com.cn/portal/exchange/jyxx/hq/hq" & D & ".html", Destination:=Range("A1"))
        .Name = " CF "
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "3"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
   
    ActiveWindow.SmallScroll Down:=0
    ChDir "C:\Documents and Settings\Administrator\桌面\1"
   
    ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\Administrator\桌面\1\" & D & ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False
      Next i
  End Sub
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
1051541722 + 2 + 2 + 2 精彩帖子
admin_kefu + 50 热心帮助其他会员

总评分: 论坛币 + 50  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

板凳
懒洋洋老爷爷 发表于 2015-3-16 17:31:16
幸福摩天轮GP 发表于 2015-3-10 11:21
每一个期货品种一张表,按照时间顺序排列,数据在2011年以前是全部一起下载的。只有在以后才是分类的。
先建 ...
没想到问题过了这么久还能有热心的论坛友帮忙解答,真的多谢啦,虽然没用你的方法但我的问题已经解决啦,是托论坛的前辈帮我下载的,论坛币还是给你吧~~多谢辛苦

报纸
幸福摩天轮GP 发表于 2015-3-17 08:56:42
懒洋洋老爷爷 发表于 2015-3-16 17:31
没想到问题过了这么久还能有热心的论坛友帮忙解答,真的多谢啦,虽然没用你的方法但我的问题已经解决啦, ...
没事,挑战解决问题的收获远大于这个,也是边摸索边解决的,真的很有趣。

地板
matlab-007 发表于 2016-6-14 20:54:51
从网站批量导入数据到Excel范例  http://download.csdn.net/download/raymond1st/2822035

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 08:32