Can';不要在不打开excel(XLS)文件的情况下读取它
我从网页下载了一个Excel 2003格式的XLS文件(没有格式选择),需要提取数据。我应该能够阅读的内容作为一个数据库,而不需要先打开它,但它不会让我阅读它,而不打开它第一 因为它是一个2003年的xls文件,如果我打开它,它会发出一个警告,它可能已损坏等等,我需要确认文件的打开!然后我点击我读取的数据,它在我的datagridview中显示得很好Can';不要在不打开excel(XLS)文件的情况下读取它,excel,vb.net,Excel,Vb.net,我从网页下载了一个Excel 2003格式的XLS文件(没有格式选择),需要提取数据。我应该能够阅读的内容作为一个数据库,而不需要先打开它,但它不会让我阅读它,而不打开它第一 因为它是一个2003年的xls文件,如果我打开它,它会发出一个警告,它可能已损坏等等,我需要确认文件的打开!然后我点击我读取的数据,它在我的datagridview中显示得很好 Imports System.Data.SqlClient Imports System.Data Imports System.Data.Ole
Imports System.Data.SqlClient
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.Office.Interop.Excel
Try
Dim MyConnection As System.Data.OleDb.OleDbConnection
Dim dataSet As System.Data.DataSet
Dim datareader As OleDbDataReader
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
Dim path As String = "C:\holding\list_demands.xls"
MyConnection = New
System.Data.OleDb.OleDbConnection("Provider=Microsoft.ace.OLEDB.12.0;Data
Source=" + path + ";Excel 8.0 XML;HDR=YES;Format=xls")
MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from
[List_demands$]", MyConnection)
MyConnection.Open()
dataSet = New System.Data.DataSet
MyCommand.Fill(dataSet)
DataGridView1.DataSource = dataSet.Tables(0)
MyConnection.Close()
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
验证下载的文件是否确实是Excel文件。许多网站下载Html(文本),只需给它一个
.xls
扩展名,就能诱使Excel打开它。Excel检测到它是Html并将其转换。尝试在记事本中打开文件。如果它是可读文本,它就不是Excel文件。是的,我刚刚看到了,我将文件扩展名改为html,然后chrome打开它并显示了数据!现在,我只需要弄清楚如何将其读取为html或将其转换为有效的XLSX格式文件!让我不舒服的是windows检测到了复制,然后需要确认。如果我手动接受,那么即使是html格式的代码也可以正常工作!实际的excel.xls文件也可以正常工作,需要确认@Peter如果你知道文件中是HTML,那么你可以从中寻找灵感。只需安装Agilitypack,它就成功了!谢谢安德鲁