全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
6300 5
2015-01-24
悬赏 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 ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
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:="
即可。这样的工作很简单,至此,问题已经解决啦。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

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
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

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

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

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

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-6-14 20:54:51
从网站批量导入数据到Excel范例  http://download.csdn.net/download/raymond1st/2822035
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群