Tốt Ole và excel bài viết: http://support.microsoft.com/kb/316934
Các mã sau đây cập nhật một biến tin đó là số hàng thành công và trả về một chuỗi đó là đường dẫn đến file excel.
Hãy nhớ sử dụng Path
từ System.IO;
!
string tempXlsFilePathName; string result = new string;
string sheetName;
string queryString;
int successCounter;
// set sheetName and queryString
sheetName = "sheetName";
queryString = "CREATE TABLE " + sheetName + "([columnTitle] char(255))";
// Write .xls
successCounter = 0;
tempXlsFilePathName = (_tempXlsFilePath + @"\literalFilename.xls");
using (OleDbConnection connection = new OleDbConnection(GetConnectionString(tempXlsFilePathName)))
{
OleDbCommand command = new OleDbCommand(queryString, connection);
connection.Open();
command.ExecuteNonQuery();
yourCollection.ForEach(dataItem=>
{
string SQL = "INSERT INTO [" + sheetName + "$] VALUES ('" + dataItem.ToString() + "')";
OleDbCommand updateCommand = new OleDbCommand(SQL, connection);
updateCommand.ExecuteNonQuery();
successCounter++;
}
);
// update result with successfully written username filepath
result = tempXlsFilePathName;
}
_successfulRowsCount = successCounter;
return result;
N.B. Điều này đã được chỉnh sửa trong một vội vàng, vì vậy có thể chứa một số sai lầm.
Tôi đang sử dụng Excel 2010 và VSTO 4.0 và nó không có vấn đề như vậy. Những gì bạn đang sử dụng? – user626528
@Sean câu trả lời của tôi chứa mã C# và bài viết được liên kết có chứa mã VB, như bạn đã yêu cầu trong bản sửa đổi 3. – StuperUser
Suy nghĩ ban đầu của tôi là chia dữ liệu thành một số ô khác nhau (nói 100/300 ký tự mỗi) và sau đó hợp nhất những ... Làm việc cẩu thả xung quanh, nhưng tôi nghĩ nó có thể hoạt động – Ortund