2012-01-19 62 views
5

我發現這裏有很多建議使用ExcelLibrary編輯excell文件,但我找不到任何地方的任何文檔。Excellibrary文檔

http://code.google.com/p/excellibrary/

+0

有什麼具體的,你想要做的?我已經使用ExcelLibrary,並發現簡單易懂的api。 – Lester

+0

我想將excel文件轉換爲c#數據表,我不知道sintax。我總是喜歡有完整的文檔,在這裏我找不到任何文檔。 –

+0

對於那些仍在選擇庫的人:有一個更好的(也是更好的文檔)項目:http://epplus.codeplex.com/ – Laoujin

回答

6

試試這個:

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); 
} 

這不完全的最漂亮的代碼,但它返回一個DataTable。我建議你直接使用這些值,如果可能的話。而不是轉換爲DataTable直接讀取值並跳過此轉換步驟。

+0

謝謝萊斯特。只有一個問題,第一行不是標題。我不需要一個。我能做些什麼,所以第一行不是標題,所以這是默認的(Column1,Column2,等等)。謝謝。 –

+1

我更新了代碼。您只需根據需要手動插入列數。你可能能夠做得更好,只是把它放在一個循環中,但我現在無法測試。 – Lester

0

我不知道這是什麼,但我認爲操作Microsoft Office文檔的最佳方法是使用Open XML SDK 2.0

+2

不,他們不是:「目前.xls(BIFF8)格式實現。 .xlsx(Excel 2007)也可能受支持。「 – Vinzz

+0

是的,你絕對正確。我太快回答,沒有完全閱讀。我會修改我的答案。 – BG100

2

這個問題及其答案是非常古老的。現在任何人都在看這個 - 忘記ExcelLibrary。 NPOI是現在要走的路,並且可以很好地用於兩個.xls和原來的.xlsx

https://npoi.codeplex.com/ - 從哪裏得到的C#下載
https://poi.apache.org/ - 我已經找到了最好的文檔,即使它是Java版本。

1
//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); 
    } 
} 
+0

請給更多的解釋,thx –

+0

如何在ExcelLibrary.dll中自動調整單元格? –