Tôi đã tìm thấy nhiều đề xuất ở đây để sử dụng ExcelLibrary để chỉnh sửa các tệp excell, nhưng tôi không thể tìm thấy bất kỳ tài liệu nào ở bất kỳ đâu.Tài liệu Excellibrary
http://code.google.com/p/excellibrary/
Tôi đã tìm thấy nhiều đề xuất ở đây để sử dụng ExcelLibrary để chỉnh sửa các tệp excell, nhưng tôi không thể tìm thấy bất kỳ tài liệu nào ở bất kỳ đâu.Tài liệu Excellibrary
http://code.google.com/p/excellibrary/
Hãy thử điều này:
var workbook = Workbook.Load("spreadsheet.xls");
var worksheet = workbook.Worksheets[0]; // assuming only 1 worksheet
var cells = worksheet.Cells;
var dataTable = new DataTable("datatable");
// add columns
dataTable.Columns.Add("column1");
dataTable.Columns.Add("column2");
...
// add rows
for (int rowIndex = cells.FirstRowIndex + 1; rowIndex <= cells.LastRowIndex; rowIndex++)
{
var values = new List<string>();
foreach(var cell in cells.GetRow(rowIndex))
{
values.Add(cell.Value.StringValue);
}
dataTable.LoadDataRow(values.ToArray(), true);
}
Nó không chính xác mã đẹp nhưng nó trả về một DataTable
. Tôi khuyên bạn chỉ nên sử dụng các giá trị trực tiếp nếu có thể. thay vì chuyển đổi thành số DataTable
, hãy đọc trực tiếp các giá trị và bỏ qua bước chuyển đổi này.
Cảm ơn Lester. Chỉ có một vấn đề, hàng đầu tiên không phải là tiêu đề. Tôi không cần. Những gì tôi có thể làm như vậy hàng đầu tiên không phải là tiêu đề, do đó, đó là mặc định (Column1, Column2, vv). Cảm ơn. –
Tôi đã cập nhật mã. Bạn chỉ cần chèn thủ công số cột nếu cần. Bạn có thể làm 1 tốt hơn và chỉ cần đặt nó trong một vòng lặp nhưng tôi không thể kiểm tra ngay bây giờ. – Lester
Tôi không chắc chắn này là gì, nhưng tôi nghĩ rằng phương pháp ưa thích của thao tác tài liệu Microsoft Office là sử dụng Open XML SDK 2.0.
Câu hỏi này và câu trả lời của câu hỏi này thực sự cũ. Bất cứ ai nhìn vào điều này bây giờ - quên ExcelLibrary. NPOI bây giờ là con đường để đi, và hoạt động tốt cho cả .xls và .xlsx
https://npoi.codeplex.com/ - nơi để có được C# tải
https://poi.apache.org/ - tài liệu tốt nhất mà tôi đã tìm thấy, mặc dù nó là phiên bản Java.
//create new xls file
string file = "C:\newdoc.xls";
Workbook workbook = new Workbook();
Worksheet worksheet = new Worksheet("First Sheet");
worksheet.Cells[0, 1] = new Cell((short)1);
worksheet.Cells[2, 0] = new Cell(9999999);
worksheet.Cells[3, 3] = new Cell((decimal)3.45);
worksheet.Cells[2, 2] = new Cell("Text string");
worksheet.Cells[2, 4] = new Cell("Second string");
worksheet.Cells[4, 0] = new Cell(32764.5, "#,##0.00");
worksheet.Cells[5, 1] = new Cell(DateTime.Now, @"YYYY-MM-DD"); worksheet.Cells.ColumnWidth[0, 1] = 3000;
workbook.Worksheets.Add(worksheet); workbook.Save(file);
// open xls file
Workbook book = Workbook.Load(file);
Worksheet sheet = book.Worksheets[0];
// traverse cells
foreach (Pair, Cell> cell in sheet.Cells)
{
dgvCells[cell.Left.Right, cell.Left.Left].Value = cell.Right.Value;
}
// traverse rows by Index
for (int rowIndex = sheet.Cells.FirstRowIndex; rowIndex <= sheet.Cells.LastRowIndex; rowIndex++)
{
Row row = sheet.Cells.GetRow(rowIndex);
for (int colIndex = row.FirstColIndex; colIndex <= row.LastColIndex; colIndex++)
{
Cell cell = row.GetCell(colIndex);
}
}
Vui lòng giải thích thêm, thx –
Làm thế nào để tự động điền ô trong ExcelLibrary.dll? –
Có điều gì đó cụ thể mà bạn đang cố gắng làm không? Tôi đã sử dụng ExcelLibrary và tìm thấy api đơn giản để hiểu. – Lester
Tôi đang cố chuyển đổi tệp excel thành C# datatable, và tôi không biết sintax. Tôi luôn muốn có tài liệu đầy đủ và tôi không thể tìm thấy bất kỳ tài liệu nào ở đây. –
Đối với những thư viện vẫn chọn: Có một dự án tốt hơn (và cũng được ghi lại tốt hơn): http://epplus.codeplex.com/ – Laoujin