2012-01-19 5 views
5

エクセルファイルの編集にはExcelLibraryを使用することをお勧めしますが、どこのドキュメントも見つかりません。Excellibraryのドキュメント

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

+0

具体的なことがありますか?私はExcelLibraryを使い、apiが理解しやすいことを発見しました。 – Lester

+0

私はExcelファイルをC#datatableに変換しようとしていますが、私は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

ありがとうLester。 1つの問題、最初の行はヘッダーではありません。私はそれを必要としません。どうすれば最初の行がヘッダーでないので、デフォルト(Column1、Column2など)になります。ありがとう。 –

+1

コードを更新しました。必要に応じて手動で列数を挿入するだけで済みます。あなたは1を改善してループに入れるだけかもしれませんが、今はテストすることができません。 – Lester

0

私はこれが何であるかわからないんだけど、私は、Microsoft Officeドキュメントを操作する好ましい方法はOpen XML SDK 2.0を使用することだと思います。

+2

いいえ、そうではありません: "現在は.xls(BIFF8)フォーマットが実装されています。 .xlsx(Excel 2007)もサポートされる可能性があります。 – Vinzz

+0

はい、あなたの絶対に正しい。私は答えが早すぎて、それを完全には読まなかった。私は私の答えを修正します。 – BG100

2

この質問とその回答は本当に古いです。誰でもこれを見て - ExcelLibraryを忘れる。 NPOIは今進むべき道である、との両方.XLSのためにうまく機能して

https://npoi.codeplex.com/の.xlsx - どこの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

詳細を教えてください。 –

+0

ExcelLibrary.dllでセルを自動入力する方法は? –

関連する問題