Tôi cần lấy dữ liệu từ một xls, tôi cũng cần người dùng có thể thay đổi vị trí của tệp. Vì vậy, một OleDbConnection có vẻ như là một khởi đầu tốt, và nó đã được cho đến khi các tế bào sáp nhập đầu tiên.Mở bảng tính Excel 2003 bằng C#. Không thể tìm thấy ISAM có thể cài đặt. Ngoại lệ
này làm việc cho tất cả ngoại trừ các tế bào sáp nhập:
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=F:\test.xls;Extended Properties=Excel 8.0;");
cmd.CommandText = "SELECT * FROM [Sheet$]";
cmd.Connection.Open();
tôi thấy rằng điều này sẽ cho phép truy cập vào các tế bào sáp nhập:
OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\test.xls;Extended Properties=Excel 8.0;HDR=Yes;IMEX=1;");
Nhưng sau đó tôi nhận được một không thể tìm thấy cài đặt ISAM ngoại lệ trên cmd.conn.open();
Tôi làm theo các lời khuyên ở đây: http://support.microsoft.com/kb/209805
Và ở đây: Error: "Could Not Find Installable ISAM"
Không may mắn.
Tôi đang mở các cách khác để lấy dữ liệu từ các xls. Hoặc thậm chí nếu có một lệnh tôi có thể chạy trên các xls để loại bỏ các tế bào được phép có thể hoạt động.
Ai nghĩ về cú pháp khủng khiếp này? – configurator
Tôi phải thay đổi một chút: OleDbConnection (@ "Nhà cung cấp = Microsoft.Jet.OLEDB.4.0; Nguồn dữ liệu = F: \ test.xls; Thuộc tính mở rộng = 'Excel 8.0; HDR = NO; IMEX = 1 '"); – NitroxDM
Cảm ơn rất nhiều vì câu trả lời này. –