【问题标题】:Excel Download from ASP.net pageExcel 从 ASP.net 页面下载
【发布时间】:2012-05-04 16:09:39
【问题描述】:

我对网络编程非常陌生。我正在尝试从 ASP.net 网站下载 excel。 IT 不需要身份验证,但是我无法调试 URL,因为 firebug 不会让我请求 URL。高低搜索。对此的任何输入都会很棒。提前谢谢你。

网址:http://tebb.elpaso.com/ebbmasterpage/Capacity/OperAvailAutoTable.aspx?code=TGP&name=Operationally%20Available%20Capacity&status=Cap&sParam2=M&sParam3=5/4/2012&sParam8=S

操作:我点击“摘要下载”按钮下载excel。

我不知道 onClick() 去哪里了。

【问题讨论】:

  • 你到底想做什么?从 Excel 中或从其他地方下载 Excel 文件?就目前而言,这个问题太模糊而无法回答。
  • - 上面的链接有一个以 Excel 格式下载数据的选项。我想使用 VB.Net 以编程方式下载 excel。我的问题是我找不到访问 excel 的确切 URL。查看页面源代码,他似乎在做一些回发和一些事情,但我对 javascript(或 ASP.net)不太熟悉。我想做的是从 VB.net 程序中下载该 excel。我已经尝试为请求和发布等设置 cookie,但这些通常的常规逻辑都不起作用。谢谢。
  • 这个页面不是和直接下载的数据一样吗?似乎从那里开始会更容易......tebb.elpaso.com/ebbmasterpage/Downloads/…
  • 不,我试过了。它再次进入页面。它不会转到excel的直接链接。例如,没有像xyz.com/myExcel.xlsThe 这样的链接下载链接仍然会转到有一个包含所有信息的数据表和一个名为“摘要下载”的按钮的页面,它可以让我下载一个 excel。现在,我的挑战是 - 我无法访问“摘要下载”在后台访问的 URL。
  • 有什么线索吗?我还在苦苦寻找网址?感谢您的帮助。

标签: vb.net excel download


【解决方案1】:

http://tebb.elpaso.com/ebbmasterpage/Capacity/OperAvailAutoTable.aspx?code=TGP&name=Operationally+Available+Capacity&status=Cap&sParam2=M&sParam3=5%2f4%2f2012&sParam8=S

Param3代表日期,%2f是html编码的/

这里的关键是发布数据。 要下载 excel 文件,原始帖子数据为:

__ EVENTTARGET =& EM> _EVENTARGUMENT =&ctl00_WebSplitter1_tmpl0_NavigationUserControl1_TreeView1_ExpandState = ennunnnnnnnnunnnnnunnnnnnunnnnnnnnnnnnnnnnnnnnnnnnnnnunnnunnnnnnnnnnnnnnnnunnnnnnnn&ctl00_WebSplitter1_tmpl0_NavigationUserControl1_TreeView1_SelectedNode =&_ LASTFOCUS =& EM> _VIEWSTATE =%2FwEPDwUIOTA0MDgxNzEPFgYeCmhpZGVDb2x1bW4y3QEAAQAAAP%2F%2F%2F%2F8BAAAAAAAAAAQBAAAAflN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBwAACAgICQIAAAABAAAAAQAAAA8CAAAABAAAAAgTAAAAAAAAAAAAAAAAAAAACx4LVGFibGVOdW1iZXICAR4IUm93Q291bnQCkQwWAmYPZBYCAgMPFgIeBm9uTG9hZAUHaW5pdCgpOxYCAgEPZBYGAgMPFgIeA3NyYwUQfi9pbWFnZXMvVEdQLmdpZmQCBw88KwAFAQMUKwADD2QWAg9mFCsAAmRkDwIBFCsAAmRkZGQWAmYPZBYEZg8UKwACZGQWAmYPZBYCBRZOYXZpZ2F0aW9uVXNlckNvbnRyb2wxD2QWAgICDw8WBB4IQ3NzQ2xhc3MFC3RhYmxlSGVhZGVyHgRfIVNCAgJkZAIBDxQrAAJkZBYCZg9kFgIFE0NvbnRlbnRQbGFjZUhvbGRlcjEPZBYIAgEPZ BYEAgEPZBYCZg9kFgICAQ8PFgIeB1Zpc2libGVnZBYCZg9kFgpmDw8WBB4FV2lkdGgbAAAAAAAAJEAHAAAAHwYCgAJkFgJmDw8WAh4LUG9zdEJhY2tVcmwFdk9wZXJBdmFpbEF1dG9RdWVyeS5hc3B4P2NvZGU9VEdQJm5hbWU9T3BlcmF0aW9uYWxseSBBdmFpbGFibGUgQ2FwYWNpdHkmc3RhdHVzPUNhcCZzUGFyYW0yPU0mc1BhcmFtMz01LzQvMjAxMiZzUGFyYW04PVNkZAIBDw8WBB8IGwAAAAAAADlABwAAAB8GAoACZBYCZg8PFgIeBFRleHQFEFN1bW1hcnkgRG93bmxvYWQWBB4Hb25jbGljawUKc2hvd0ltZygpOx4Gb25CbHVyBQpoaWRlSW1nKCk7ZAICDw8WBB8IGwAAAAAAQFBABwAAAB8GAoACZGQCAw9kFgJmDw8WAh8HZ2RkAgQPZBYCZg8QDxYEHgtfIURhdGFCb3VuZGcfB2cWAh4Ib25jaGFuZ2UFDXNob3dJbWdEREwoKTsQFQQCMTUCMzACNTADQWxsFQQCMTUCMzACNTADQWxsFCsDBGdnZ2cWAWZkAgMPZBYCZg9kFgICAQ8UKwACDxYGHglJdGVtQ291bnQC%2F%2F%2F%2F%2Fw8eC18hSXRlbUNvdW50Ag8fB2dkPCsAHAQAFggeEnNlckFjdGl2ZVJvd1N0cmluZ2QeF1NvcnRpbmdBbGdvcml0aG1EZWZhdWx0CymjAUluZnJhZ2lzdGljcy5XZWJVSS5VbHRyYVdlYkdyaWQuU29ydGluZ0FsZ29yaXRobSwgSW5mcmFnaXN0aWNzMi5XZWJVSS5VbHRyYVdlYkdyaWQudjExLjEsIFZlcnNpb249MTEuMS4yMDExMS4xMDA2LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTdkZDVjMzE2M2YyY2QwY2IFHhNzZXJBY3R pdmVDZWxsU3RyaW5nZB4TQWxsb3dTb3J0aW5nRGVmYXVsdAspnwFJbmZyYWdpc3RpY3MuV2ViVUkuVWx0cmFXZWJHcmlkLkFsbG93U29ydGluZywgSW5mcmFnaXN0aWNzMi5XZWJVSS5VbHRyYVdlYkdyaWQudjExLjEsIFZlcnNpb249MTEuMS4yMDExMS4xMDA2LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTdkZDVjMzE2M2YyY2QwY2IBCBYCHgFCBRBvdmVyZmxvdzpoaWRkZW47ExQrAAMWCB4LQWxsb3dQYWdpbmdnHghQYWdlU2l6ZQIPHhBDdXJyZW50UGFnZUluZGV4AgEeCVBhZ2VDb3VudAJoZGQUFCsAAmQWATwrABQCABYKHg1CYXNlVGFibGVOYW1lBQZUYWJsZTEeD0NoaWxkQmFuZENvbHVtbmUeEEFkZEJ1dHRvbkNhcHRpb24FBlRhYmxlMR4UQWRkQnV0dG9uVG9vbFRpcFRleHRkHgNLZXkFBlRhYmxlMQ0UKwAEFhQoKVpTeXN0ZW0uVUludDY0LCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkBMSgrBgEyKCsGATMoKwYBNCgrBgE1KCsGATYoKwYBNygrBgE4KCsGATkoKwYCMTAoKwYCMTEoKwYCMTIoKwYCMTMoKwYCMTQoKwYCMTUoKwYCMTYoKwYCMTcoKwYCMTgoKwYCMTkoKwYCMjAWFWQUKwAJFgYeDkJhc2VDb2x1bW5OYW1lBRJBdmFpbCBDYXAgRWZmIERhdGUfHgUSQXZhaWwgQ2FwIEVmZiBEYXRlHgdJc0JvdW5kZ2RkZGRkFCsABRYCHgdDYXB0aW9uBRJBdmFpbCBDYXAgRWZmIERhdGVkZBYCHgdPcmlnaW5YAgF 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%2FY29kZT1UR1AmbmFtZT1PcGVyYXRpb25hbGx5IEF2YWlsYWJsZSBDYXBhY2l0eSZzdGF0dXM9Q2FwJnNQYXJhbTE9VEdQJnNQYXJhbTI9RCZzUGFyYW0zPTA1LzA0LzIwMTIgMDk6MDAmc1BhcmFtND1QMDAwODAmc1BhcmFtNT0wMDE3NTYmc1BhcmFtNj1DQVJUSEFHRSBMSU5FIFRFUk1JTlVTJnNQYXJhbTc9TWF5ICA0IDIwMTIgIDk6NDZQTSZzUGFyYW04PUQmZGV0YWlscz1ZZGQCAQ9kFgICAQ8PFgIfJwX1AU9wZXJBdmFpbEF1dG9UYWJsZS5hc3B4P2NvZGU9VEdQJm5hbWU9T3BlcmF0aW9uYWxseSBBdmFpbGFibGUgQ2FwYWNpdHkmc3RhdHVzPUNhcCZzUGFyYW0xPVRHUCZzUGFyYW0yPUQmc1BhcmFtMz0wNS8wNC8yMDEyIDA5OjAwJnNQYXJhbTQ9UDAwMTg2JnNQYXJhbTU9MDAxNDc5JnNQYXJhbTY9Q1JBTlNUT04gTEFURVJBTCAtIEJFR0lOUyAyNjVBJnNQYXJhbTc9TWF5ICA0IDIwMTIgIDk6NDZQTSZzUGFyYW04PUQmZGV0YWlscz1ZZGQCAg9kFgICAQ8PFgIfJwXgAU9wZXJBdmFpbEF1dG9UYWJsZS5hc3B4P2NvZGU9VEdQJm5hbWU9T3BlcmF0aW9uYWxseSBBdmFpbGFibGUgQ2FwYWNpdHkmc3RhdHVzPUNhcCZzUGFyYW0xPVRHUCZzUGFyYW0yPUQmc1BhcmFtMz0wNS8wNC8yMDEyIDA5OjAwJnNQYXJhbTQ9UDAwMzQ5JnNQYXJhbTU9MDAxODM2JnNQYXJhbTY9SEMgWk9ORSA1JnNQYXJhbTc9TWF5ICA0IDIwMTIgIDk6N DZQTSZzUGFyYW04PUQmZGV0YWlscz1ZZGQCAw9kFgICAQ8PFgIfJwXnAU9wZXJBdmFpbEF1dG9UYWJsZS5hc3B4P2NvZGU9VEdQJm5hbWU9T3BlcmF0aW9uYWxseSBBdmFpbGFibGUgQ2FwYWNpdHkmc3RhdHVzPUNhcCZzUGFyYW0xPVRHUCZzUGFyYW0yPUQmc1BhcmFtMz0wNS8wNC8yMDEyIDA5OjAwJnNQYXJhbTQ9UDAwMzU5JnNQYXJhbTU9MDAwMzM4JnNQYXJhbTY9TUxWIDI2MCAoRC9TIFNNKSZzUGFyYW03PU1heSAgNCAyMDEyICA5OjQ2UE0mc1BhcmFtOD1EJmRldGFpbHM9WWRkAgQPZBYCAgEPDxYCHycF7AFPcGVyQXZhaWxBdXRvVGFibGUuYXNweD9jb2RlPVRHUCZuYW1lPU9wZXJhdGlvbmFsbHkgQXZhaWxhYmxlIENhcGFjaXR5JnN0YXR1cz1DYXAmc1BhcmFtMT1UR1Amc1BhcmFtMj1EJnNQYXJhbTM9MDUvMDQvMjAxMiAwOTowMCZzUGFyYW00PVAwMDAyOCZzUGFyYW01PTAwMTQ4MCZzUGFyYW02PU1MViAyNjZBIChQQVdUVUNLRVRUKSZzUGFyYW03PU1heSAgNCAyMDEyICA5OjQ2UE0mc1BhcmFtOD1EJmRldGFpbHM9WWRkAgUPZBYCAgEPDxYCHycF5wFPcGVyQXZhaWxBdXRvVGFibGUuYXNweD9jb2RlPVRHUCZuYW1lPU9wZXJhdGlvbmFsbHkgQXZhaWxhYmxlIENhcGFjaXR5JnN0YXR1cz1DYXAmc1BhcmFtMT1UR1Amc1BhcmFtMj1EJnNQYXJhbTM9MDUvMDQvMjAxMiAwOTowMCZzUGFyYW00PVAwMDMyMSZzUGFyYW01PTAwMDI4NiZzUGFyYW02PU1MViAzMTQgKEQvUyBNUykmc1BhcmFtNz1NYXkgIDQgMjAxM iAgOTo0NlBNJnNQYXJhbTg9RCZkZXRhaWxzPVlkZAIGD2QWAgIBDw8WAh8nBecBT3BlckF2YWlsQXV0b1RhYmxlLmFzcHg%2FY29kZT1UR1AmbmFtZT1PcGVyYXRpb25hbGx5IEF2YWlsYWJsZSBDYXBhY2l0eSZzdGF0dXM9Q2FwJnNQYXJhbTE9VEdQJnNQYXJhbTI9RCZzUGFyYW0zPTA1LzA0LzIwMTIgMDk6MDAmc1BhcmFtND1QMDAwOTUmc1BhcmFtNT0wMDE3NTQmc1BhcmFtNj1NTFYgMzM2IChEL1MgU00pJnNQYXJhbTc9TWF5ICA0IDIwMTIgIDk6NDZQTSZzUGFyYW04PUQmZGV0YWlscz1ZZGQCBw9kFgICAQ8PFgIfJwXzAU9wZXJBdmFpbEF1dG9UYWJsZS5hc3B4P2NvZGU9VEdQJm5hbWU9T3BlcmF0aW9uYWxseSBBdmFpbGFibGUgQ2FwYWNpdHkmc3RhdHVzPUNhcCZzUGFyYW0xPVRHUCZzUGFyYW0yPUQmc1BhcmFtMz0wNS8wNC8yMDEyIDA5OjAwJnNQYXJhbTQ9UDAwMTYyJnNQYXJhbTU9MDAxNzczJnNQYXJhbTY9TUxWIDM1NSAoVS9TIFNNKSBEL1MgT0YgUE9PTCZzUGFyYW03PU1heSAgNCAyMDEyICA5OjQ2UE0mc1BhcmFtOD1EJmRldGFpbHM9WWRkAggPZBYCAgEPDxYCHycF3QFPcGVyQXZhaWxBdXRvVGFibGUuYXNweD9jb2RlPVRHUCZuYW1lPU9wZXJhdGlvbmFsbHkgQXZhaWxhYmxlIENhcGFjaXR5JnN0YXR1cz1DYXAmc1BhcmFtMT1UR1Amc1BhcmFtMj1EJnNQYXJhbTM9MDUvMDQvMjAxMiAwOTowMCZzUGFyYW00PVAwMDI5MiZzUGFyYW01PTAwMDA2MyZzUGFyYW02PU1MViA0OCZzUGFyYW03PU1heSAgNCA yMDEyICA5OjQ2UE0mc1BhcmFtOD1EJmRldGFpbHM9WWRkAgkPZBYCAgEPDxYCHycF%2BQFPcGVyQXZhaWxBdXRvVGFibGUuYXNweD9jb2RlPVRHUCZuYW1lPU9wZXJhdGlvbmFsbHkgQXZhaWxhYmxlIENhcGFjaXR5JnN0YXR1cz1DYXAmc1BhcmFtMT1UR1Amc1BhcmFtMj1EJnNQYXJhbTM9MDUvMDQvMjAxMiAwOTowMCZzUGFyYW00PVAwMDEwOCZzUGFyYW01PTAwMTc3NyZzUGFyYW02PU1MViA1MjkgLyBZc2Nsb3NrZXkgUGxhbnQgKFUvUyBTTSkmc1BhcmFtNz1NYXkgIDQgMjAxMiAgOTo0NlBNJnNQYXJhbTg9RCZkZXRhaWxzPVlkZAIKD2QWAgIBDw8WAh8nBfcBT3BlckF2YWlsQXV0b1RhYmxlLmFzcHg%2FY29kZT1UR1AmbmFtZT1PcGVyYXRpb25hbGx5IEF2YWlsYWJsZSBDYXBhY2l0eSZzdGF0dXM9Q2FwJnNQYXJhbTE9VEdQJnNQYXJhbTI9RCZzUGFyYW0zPTA1LzA0LzIwMTIgMDk6MDAmc1BhcmFtND1QMDAxNjUmc1BhcmFtNT0wMDE0Nzgmc1BhcmFtNj1OLiBIQU1QVE9OIExBVEVSQUwgLSBCRUdJTlMgMjYwQSZzUGFyYW03PU1heSAgNCAyMDEyICA5OjQ2UE0mc1BhcmFtOD1EJmRldGFpbHM9WWRkAgsPZBYCAgEPDxYCHycF4wFPcGVyQXZhaWxBdXRvVGFibGUuYXNweD9jb2RlPVRHUCZuYW1lPU9wZXJhdGlvbmFsbHkgQXZhaWxhYmxlIENhcGFjaXR5JnN0YXR1cz1DYXAmc1BhcmFtMT1UR1Amc1BhcmFtMj1EJnNQYXJhbTM9MDUvMDQvMjAxMiAwOTowMCZzUGFyYW00PVAwMDA4OCZzUGFyYW01PTAwMTc1OCZzUGF yYW02PU5JQUdBUkEgU1BVUiZzUGFyYW03PU1heSAgNCAyMDEyICA5OjQ2UE0mc1BhcmFtOD1EJmRldGFpbHM9WWRkAgwPZBYCAgEPDxYCHycF8gFPcGVyQXZhaWxBdXRvVGFibGUuYXNweD9jb2RlPVRHUCZuYW1lPU9wZXJhdGlvbmFsbHkgQXZhaWxhYmxlIENhcGFjaXR5JnN0YXR1cz1DYXAmc1BhcmFtMT1UR1Amc1BhcmFtMj1EJnNQYXJhbTM9MDUvMDQvMjAxMiAwOTowMCZzUGFyYW00PVAwMDI5NyZzUGFyYW01PTAwMTgzMSZzUGFyYW02PU5JQUdBUkEgU1BVUiBCQUNLSEFVTCBQT0lOVCZzUGFyYW03PU1heSAgNCAyMDEyICA5OjQ2UE0mc1BhcmFtOD1EJmRldGFpbHM9WWRkAg0PZBYCAgEPDxYCHycF5wFPcGVyQXZhaWxBdXRvVGFibGUuYXNweD9jb2RlPVRHUCZuYW1lPU9wZXJhdGlvbmFsbHkgQXZhaWxhYmxlIENhcGFjaXR5JnN0YXR1cz1DYXAmc1BhcmFtMT1UR1Amc1BhcmFtMj1EJnNQYXJhbTM9MDUvMDQvMjAxMiAwOTowMCZzUGFyYW00PVAwMDA4MSZzUGFyYW01PTAwMTc1OSZzUGFyYW02PVNUQSAwMDEgKFUvUyBNUykmc1BhcmFtNz1NYXkgIDQgMjAxMiAgOTo0NlBNJnNQYXJhbTg9RCZkZXRhaWxzPVlkZAIOD2QWAgIBDw8WAh8nBecBT3BlckF2YWlsQXV0b1RhYmxlLmFzcHg%2FY29kZT1UR1AmbmFtZT1PcGVyYXRpb25hbGx5IEF2YWlsYWJsZSBDYXBhY2l0eSZzdGF0dXM9Q2FwJnNQYXJhbTE9VEdQJnNQYXJhbTI9RCZzUGFyYW0zPTA1LzA0LzIwMTIgMDk6MDAmc1BhcmFtND1QMDAwNTMmc1BhcmFtNT0wM DE3NDcmc1BhcmFtNj1TVEEgMDE3IChVL1MgU00pJnNQYXJhbTc9TWF5ICA0IDIwMTIgIDk6NDZQTSZzUGFyYW04PUQmZGV0YWlscz1ZZGQCAg8UKwACZDwrABwBABYEHxNkHxFkZAIDDxYCHgJkTgUiT3BlcmF0aW9uYWxseUF2YWlsYWJsZUNhcGFjaXR5LlhMU2QCBA8UKwACFgIeDERvd25sb2FkTmFtZQUeT3BlcmF0aW9uYWxseUF2YWlsYWJsZUNhcGFjaXR5ZGQCCQ8WAh4FVmFsdWUFgwFNYXN0ZXJTdHlsZVNoZWV0LmNzc3wuLi9pZ19yZXMvRWxlY3RyaWNCbHVlL2lnX3NwbGl0dGVyLmNzc3wuLi9pZ19yZXMvRWxlY3RyaWNCbHVlL2lnX3NoYXJlZC5jc3N8Li4vaWdfcmVzL0VsZWN0cmljQmx1ZS9pZ19ncmlkLmNzc2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgMFEmN0bDAwJFdlYlNwbGl0dGVyMQU5Y3RsMDAkV2ViU3BsaXR0ZXIxJHRtcGwwJE5hdmlnYXRpb25Vc2VyQ29udHJvbDEkVHJlZVZpZXcxBTpjdGwwMCRXZWJTcGxpdHRlcjEkdG1wbDEkQ29udGVudFBsYWNlSG9sZGVyMSRVbHRyYVdlYkdyaWQxChBz9pI6%2BnL7w6b%2B8VpMMVQUpjRuWt1dkDI5QOKOHqk%3D&__ |上一页= q1Vu5vuap4CxPC3AZarvFeTSUmpu1Y5Qe6RAgsXMl EM> -9eN-hzR45dQjqjC-HEjZ0&__ EVENTVALIDATION =%2FwEWDwKF0M%2FIBQKWk6OhBAKx%2FMC2DgLM5d7LCALhg%2FaUDwKHxPzXAQKkobflCwKtsbmoAQLQ5oWgCgL73d1IAvSyi6UMAvayt6UMAvCyt6UMAoaSk6MKAqDJoG0zZk9itnjK zHvp455sJC0LF3pnU%2F9GwKhhL5KKketXYQ%3D%3D&ctl00_WebSplitter1_clientState=%7C0%7C216%2C2%2C1058%2C2%2C%7C%7C%5B%5B%5B%5Bnull%2Cnull%5D%5D%2C%5B%5D%2C%5B%B7 %220%22%3A%5B%5Bnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2C2%2Cnull%2Cnull%2Cnull%2C%2217%25%22%5D%5D%2C%221%22%3A%5B %5Bnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2C%2283%25%22%5D%5D%7D%5D%5D%2C%5B%7B%7D%2C%5B %7B%222%22%3A%5B%221%22%2C10%2C%221058px%22%5D%2C%223%22%3A%5B%220%22%2C10%2C%22216px%22%5D%7D %5D%5D%2Cnull%5D&ctl00%24WebSplitter1%24tmpl1%24ContentPlaceHolder1%24sumBtnDownload =摘要+下载和ctl00%24WebSplitter1%24tmpl1%24ContentPlaceHolder1%24SumDownloadDDL = EXCEL&ctl00%24WebSplitter1%24tmpl1%24ContentPlaceHolder1%24PageSizeDDL = 15&ctl00xWebSplitter1xtmpl1xContentPlaceHolder1xUltraWebGrid1 =%253CDisplayLayout%253E%253CStateChanges%253E% 253C%2FStateChanges%253E%253C%2FDisplayLayout%253E&ctl00%24_IG_CSS_LINKS_=MasterStyleSheet.css%7C..%2Fig_res%2FElectricBlue%2Fig_splitter.css%7C..%2Fig_res%2FElectricBlu e%2Fig_shared.css%7C..%2Fig_res%2FElectricBlue%2Fig_grid.css

这是使用 HTTP Analyzer v6 发现的。我制作了一个 VB6 测试程序,我成功下载了 5/4/2012、5/3/2012 和 5/2/2012,只需更改 URL 中的 Param3,它使用 cURL,但您应该可以将其用作如何提交 http 请求以接收 excel 文件作为 http 响应的示例。 LoadResString(101) 将上述发布数据加载到 CURLOPT_POSTFIELDS 中。等效地,LoadResString 可以替换为上述帖子数据的字符串文字。

Private Sub XPButton1_Click()
Dim CurlContext As Long
Dim buf As New StringBuffer

CurlContext = vbcurl_easy_init()

vbcurl_easy_setopt CurlContext, CURLOPT_URL, "http://tebb.elpaso.com/ebbmasterpage/Capacity/OperAvailAutoTable.aspx?code=TGP&name=Operationally+Available+Capacity&status=Cap&sParam2=M&sParam3=5%2f3%2f2012&sParam8=S"
vbcurl_easy_setopt CurlContext, CURLOPT_COOKIEJAR, App.Path & "\cookie.txt"
vbcurl_easy_setopt CurlContext, CURLOPT_COOKIEFILE, App.Path & "\cookie.txt"
vbcurl_easy_setopt CurlContext, CURLOPT_FOLLOWLOCATION, 1

vbcurl_easy_setopt CurlContext, CURLOPT_POST, 1
vbcurl_easy_setopt CurlContext, CURLOPT_POSTFIELDS, LoadResString(101)


vbcurl_easy_setopt CurlContext, CURLOPT_PROXYAUTH, CURLAUTH_ANY 'the next 5 lines are only needed to accommodate connecting through a proxy server
vbcurl_easy_setopt CurlContext, CURLOPT_HTTPPROXYTUNNEL, 0 
vbcurl_easy_setopt CurlContext, CURLOPT_PROXY, "your.proxy.if.any.com"
vbcurl_easy_setopt CurlContext, CURLOPT_PROXYPORT, 80 'or your proxy port
vbcurl_easy_setopt CurlContext, CURLOPT_PROXYUSERPWD, "" 
vbcurl_easy_setopt CurlContext, CURLOPT_WRITEDATA, ObjPtr(buf)
vbcurl_easy_setopt CurlContext, CURLOPT_WRITEFUNCTION, _
    AddressOf WriteFunction
vbcurl_easy_setopt CurlContext, CURLOPT_DEBUGFUNCTION, _
    AddressOf DebugFunction
vbcurl_easy_setopt CurlContext, CURLOPT_VERBOSE, True

ret = vbcurl_easy_perform(CurlContext)

Open App.Path & "\test.xls" For Output As #1
Print #1, buf.stringData
Close #1

End Sub

这是下载数据的直接方式,使用 Siddharth Rout 的路由将能够适应网站的代码更改。关于“复杂部分”的最后一点。您需要做的就是使用 FindWindow 等待“文件下载”框出现,一旦您知道它已启动,您可以使用 keybd_event 发送 3 个选项卡和一个回车键,稍等片刻,再次按回车键“y”如果您要覆盖文件。现在,直接下载的优点是您可以准确选择保存位置和方式。

如果您想了解更多关于我的方法的细节,我很乐意将代码发布到 StringBuffer、WriteFunction 和 DebugFunction 并解释如何从 vb 中引用 libcurl。

更新,每个请求的附加代码: StringBuffer.cls

Private byteData() As Byte
Private stringLength As Long
Private arrayLength As Long


Private Sub Class_Initialize()

ReDim byteData(1024)
arrayLength = 1024
stringLength = 0

End Sub

Public Sub Class_Terminate()

Erase byteData

End Sub


Public Property Get stringData() As String

stringData = String(stringLength, " ")
CopyMemory ByVal stringData, byteData(0), stringLength

End Property

Public Property Let stringData(newStringdata As String)

Dim newStringLength As Long

newStringLength = Len(newStringdata)

If newStringLength > arrayLength Then
    arrayLength = (arrayLength + (newStringLength - newStringLength Mod 2)) * 2
    ReDim Preserve byteData(arrayLength)
End If


CopyMemory byteData(0), ByVal newStringdata, newStringLength

stringLength = newStringLength


End Property

Public Function quickConcat(newStringdata As String)

Dim newStringLength As Long

newStringLength = Len(newStringdata) + stringLength

If newStringLength > arrayLength Then
    arrayLength = (arrayLength + (newStringLength - newStringLength Mod 2)) * 2
    ReDim Preserve byteData(arrayLength)
End If

Dim amountToAdd
amountToAdd = newStringLength - stringLength

CopyMemory byteData(stringLength), ByVal newStringdata, amountToAdd

stringLength = newStringLength

End Function

WriteFunction:

Public Function WriteFunction(ByVal rawBytes As Long, _
    ByVal sz As Long, ByVal nmemb As Long, _
    ByVal extra As Long) As Long

    Dim totalBytes As Long, i As Long
    Dim obj As Object, buf As StringBuffer
    Dim tempStr As String
    Dim Buffer() As Byte

    totalBytes = sz * nmemb

    Set obj = AsObject(extra)
    Set buf = obj
    ' append the binary characters to the HTML string
    If Not ((rawBytes = 0) Or (totalBytes = 0)) Then

        ReDim Buffer(0 To (totalBytes - 1)) As Byte
        CopyMemory Buffer(0), ByVal rawBytes, totalBytes

        tempStr = String(totalBytes, " ")
        CopyMemory ByVal tempStr, Buffer(0), totalBytes

        buf.quickConcat (tempStr)

    End If
    ' Need this line below since AsObject gets a stolen reference
    ObjectPtr(obj) = 0&

    ' Return value
    WriteFunction = totalBytes
End Function

DebugFunction:

Public Function DebugFunction(ByVal info As curl_infotype, _
    ByVal rawBytes As Long, ByVal numBytes As Long, _
    ByVal extra As Long) As Long
    Dim debugMsg As String
    Dim i As Long
    debugMsg = ""
    For i = 0 To numBytes - 1
        debugMsg = debugMsg & Chr(MemByte(rawBytes + i))
    Next
    Debug.Print "info=" & info & ", debugMsg=" & debugMsg
    DebugFunction = 0

    DoEvents

End Function

以下是在 vb6 中使用 curl 所需的 dll 和类型库: libcurl bindings for vb6

将上面的文件解压到项目目录,然后进入project->references并添加两个tlb文件(类型库)。

另外,这里是 vb libcurl 绑定的 sourceforge 页面,下载包括源代码和几个示例:http://sourceforge.net/projects/libcurl-vb/

【讨论】:

  • 我喜欢这个只是稍微好一点,因为我比 VB 更熟悉 cURL(我选择 VB 只是因为旧程序在 VB 中)。你可以发布你的代码吗?会很有帮助的。
  • vb这个用libcurl,能用libcurl吗?当然,如果您更熟悉它,可以将其与 curl.exe 命令行实用程序一起使用。我更新了答案以包含 vb 代码的缺失部分,它实现了写入和调试功能以及 vb6 如何引用 libcurl.dll
【解决方案2】:

您正在尝试的内容有点复杂。不是第一部分,而是第二部分。

逻辑

第 1 部分)单击“摘要下载”按钮以启动“文件下载”对话框

PART 2) 点击“文件下载”中的保存按钮,最终保存文件


第 1 部分

在表单上放置一个 WebBrowser1 控件和一个按钮。粘贴此代码。

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    WebBrowser1.Navigate("http://tebb.elpaso.com/ebbmasterpage/Capacity/OperAvailAutoTable.aspx?code=TGP&name=Operationally%20Available%20Capacity&status=Cap&sParam2=M&sParam3=5/4/2012&sParam8=S")
End Sub

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As  _
System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted

    If WebBrowser1.ReadyState <> 4 Then Exit Sub

    Dim el As HtmlElement = _
    WebBrowser1.Document.GetElementById("ctl00_WebSplitter1_tmpl1_ContentPlaceHolder1_sumBtnDownload")

    el.InvokeMember("Click")
End Sub

现在,当您运行此代码时,它将单击“摘要下载”按钮并启动“文件下载”对话框。请参阅下面的快照。


第 2 部分 - 复杂部分

现在您需要使用 API 来单击 File Download 对话框上的 Save 按钮。幸运的是,我已经在我的博客中介绍了这一点,所以你不会有任何问题:)

主题:VBA/VB.Net/VB6 – 点击 IE 下载窗口上的打开/保存/取消按钮 – 第一部分

链接http://www.siddharthrout.com/2011/10/23/vbavb-netvb6click-opensavecancel-button-on-ie-download-window/

快照

HTH

【讨论】:

  • 啊!但是,这真的不是我想要的。交易是,我将其设置为 cron 作业,在 Windows 任务调度程序上每 30 分钟运行一次。所以,我不能用我自己的形式做到这一点。我试图实现的是来自 IE 本身。这是我的代码(当然它不起作用) Dim ie as object ie = CreateObject("InternetExplorer.Application") ie.visible = True ie.navigate(strURL) 直到 ie.ReadyState = "READYSTATE_COMPLETE" Loop ie。 document.forms(1).submit() ie.Document.all("ctl00$WebSplitter1$tmpl1$ContentPlaceHolder1$sumBtnDownload").Click()
  • 您仍然可以创建一个 exe,而不是从按钮调用它,而是从表单加载事件调用它:) 这样它将与 Windows 任务调度程序一起使用。
  • 另一种方法是编写控制台应用程序并使用上面的代码:)
  • 它似乎永远不会进入 Webbrowser1 代码。我确实确保它被称为 Webbrowser1。当我单击按钮时,它会很好地加载页面,然后退出代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-02
  • 1970-01-01
  • 2014-01-21
相关资源
最近更新 更多