2

私はこのようなエクセルを持っています...

|------------フォーム---------------|
| ------------------------------------ |
| 名前------- ----|
| ボブ----------値-----------|
| 年齢 -----------------------------|
| 30 ------------------------------- |
|----------アドレス-------------|
| ------------------------------------ |
| 通り------- 郵便番号-|
| 値----------値---------|

..など、登録フォームのように、取得する必要のある値を確認できるように、次の行(タイトルの下)にあります。

LinqToExcel.dllでそれを行うにはどうすればよいですか。また、シートにチェックボックスがある場合、選択した値を取得するにはどうすればよいですか(チェックされているかどうかに関係なく)。

私のコード(c#.net)

var rows = from c in excel.WorksheetNoHeader(sheetName)
           select c;

foreach (var item in rows)
{
   string aux = item[0].Value.ToString();
}

Ty

4

1 に答える 1

0

私が理解したところでは、あなたのExcelファイルは次のようになるはずです

ここに画像の説明を入力

このレコードを読み取るコードをいくつか実装しましたが、複数のレコードで機能するはずです。ご覧のとおり、一連の行を反復処理して、タイトルであると仮定して奇数行を避けています。

これがうまくいくことを願っています!

namespace Demo.Stackoverflow
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using LinqToExcel;

    public class Person
    {
        public string Name { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            LoadExcel();
            Console.ReadLine();
        }

        private static void LoadExcel()
        {
            var directorio = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "Book.xls");
            var book = new ExcelQueryFactory(directorio);

            var rows = from c in book.WorksheetNoHeader()
                       select c;
            List<Person> people = new List<Person>();

            int i = 1;
            foreach (var row in rows)
            {
                if (i % 2 == 0)
                {
                    if (people.Count != 0 && people.Last().Age == 0)
                    {
                        people.Last().Age = Convert.ToInt32(row[0].Value.ToString());
                    }
                    else
                    {
                        Person per = new Person()
                        {
                            Name = row[0].Value.ToString(),
                            LastName = row[1].Value.ToString()
                        };
                        people.Add(per);
                    }
                }
                i++;
            }
        }
    }
}
于 2012-12-04T23:56:50.990 に答える