0

基本的に必要なのは、次のような構造にコピーされた Excel ファイル (空白でないセル) の内容ですIEnumerable<IEnumerable<string>> contents;
。最初の IEnumerable は行用で、2 番目は列用です。
私がすでに取り組んでいるのは、次を使用してファイルをロードすることです:

var excel = new ExcelQueryFactory("file.xls");

よろしくお願いします。

4

4 に答える 4

1

答えは次のとおりです。

var excel = new ExcelQueryFactory("file.xls");
var result = excel.WorksheetNoHeader().ToList().Select(x => x.Select(y => y.ToString()).AsEnumerable());

助けてくれてありがとう。

于 2012-12-12T17:47:09.403 に答える
0

最初にデータをデータテーブルのようなものに入れてから、as Enumarable を使用してそこから選択しますか?

var x = _xlData.Tables[0].Rows
           .Cast<DataRow>()
           .Where(row => !row.ItemArray.All(field => field is System.DBNull ||   
                                            string.Compare((field as string).Trim(), 
                                            string.Empty) == 0))
           .AsEnumerable();
于 2012-12-12T17:22:50.593 に答える
0

このようなことを試すことができます。追加のロジックを自分で記述して、フィールドデータを取得することはできません = to string.Empty ファイルパスをファイルパスの場所がある場所に置き換えます

Linq to Excel オープン ソース プロジェクト (code.google.com/.../linqtoexcel) を使用して、Excel からデータを簡単に取得することもできます。OleDB 接続を処理し、where 句を使用できます。Excel の列名に対応するプロパティを持つクラスを作成するだけです。次に例を示します。

IExcelRepository<Client> repo = new ExcelRepository<Client>(@"C:\file.xls");

var largeClients = from c in repo.Worksheet

                  where c.Employees > 200

                  select c;

foreach (Client client in largeClients)
{
   Console.WriteLine(client.ClientName);
}
于 2012-12-12T17:16:55.137 に答える
0

ドキュメントによると、解決策は次のように簡単です。

var excel = new ExcelQueryFactory("file.xls");
var result = excel.Worksheet()
                  .Select(x => x.Select(y => y.ToString()));
于 2012-12-12T17:28:29.583 に答える