Tôi đang cố gắng sử dụng C# để đọc tệp excel có kiểu dữ liệu xen kẽ. Dưới đây là chuỗi kết nối của tôiĐọc Excel Data InterMixed DataType mà không sửa đổi khóa Registry
var path = //xls location
var MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + path + "';Extended Properties='Excel 8.0;IMEX=1;'");
Nghiên cứu dạy tôi rằng hoàn chỉnh Extended Properties
trong chuỗi kết nối được coi là
Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text
Tuy nhiên, tôi đã được thông báo rằng trong chuỗi kết nối, các TypeGuessRows=0
có không có nghĩa là vì giá trị sẽ là được lấy trực tiếp từ Cơ quan đăng ký. Do đó tôi cần phải sửa đổi khóa bằng tay và loại bỏ thuộc tính này khỏi chuỗi kết nối.
Chìa khóa registry cụ thể mà đã tham gia là:
Đường dẫn:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Excel
chính:
TypeGuessRows
giá trị gốc = , để làm cho nó hoạt thay đổi thành =
Nếu không làm điều này các IMEX
sẽ không làm việc thậm chí khó khăn tôi thêm TypeGuessRows=0
vào Extended Properties
.
Tuy nhiên, công ty của tôi cấm sửa đổi giá trị đăng ký (đúng). Tôi được yêu cầu tìm các giải pháp thay thế để làm điều này.
Nói tóm lại:
Có cách nào để đọc datatype trộn trội tập tin mà không phải sửa đổi bất kỳ khóa registry (mà là một thực tế khá phổ biến)?
chủ đề tiếp theo:
Bạn đã có kinh nghiệm này trước đây chưa? Có possibilites mà chúng tôi có thể thiết lập TypeGuessRows=0
từ chuỗi kết nối mà không cần phải sửa đổi khóa registry (hủy bỏ tiền đề của tôi ở trên).
Nếu mọi thứ không làm việc với OleDb
:
Có lựa chọn thay thế bên cạnh OleDb
?
Tôi đánh giá cao mọi lời khuyên hoặc gợi ý.
Trân
Khám phá tuyệt vời! Cảm ơn! – Bronek