Tôi đang sử dụng lớp OleDbConnection để lấy dữ liệu từ một bảng tính Excel 2000/2003:Excel tế bào-giá trị được cắt ngắn bởi OLEDB-nhà cung cấp
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + filename + ";" +
"Extended Properties=\"Excel 8.0;IMEX=1\";";
OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();
// code to get table name from schema omitted
var dataAdapter = new OleDbDataAdapter(string.Format("SELECT * FROM [{0}]", name),connection);
var myDataSet = new DataSet();
dataAdapter.Fill(myDataSet, "ExcelInfo");
Bây giờ nó chỉ ra rằng các tế bào trong bảng tính với chiều dài lớn hơn hơn 255 ký tự đang bị cắt ngắn. Đây có phải là một hạn chế trong nhà cung cấp Microsoft.Jet.OLEDB hay là tôi có thể làm gì với nó?
Bất kỳ ai?
Cảm ơn. Đó là một giải pháp hơi xấu, vì trình cài đặt của tôi sẽ phải sửa đổi sổ đăng ký của người dùng, nhưng tôi hy vọng nó sẽ hoạt động. Vì vậy, miễn là một quản trị viên chạy trình cài đặt .. –
tôi không hiểu microsofts gợi ý ở đây/nếu bạn thay đổi nó đến 16 không nó chỉ cần kiểm tra 16 hàng đầu tiên ?? – leora
@ooo Nếu bạn thay đổi nó thành 0, sau đó nó quét tất cả các hàng. Hãy cẩn thận mặc dù điều này có thể có tác động hiệu suất trên các bảng lớn hơn. – rmoore