C# 如何使用LinqToExcel获取没有标头的单元格值

C# 如何使用LinqToExcel获取没有标头的单元格值,c#,.net,linq,C#,.net,Linq,我有一个像这样的excel |------形式--------| |------------------| |名字——姓--| |鲍勃------价值观------| |年龄---------------| | 30 ----------------| |-----地址-------| |------------------| |街道——邮政编码-| |价值------价值-----| …等等,就像登记表一样, 正如您所看到的,我需要获得的值位于标题下的下一行 如何使用LinqToExcel.d

我有一个像这样的excel

|------形式--------| |------------------| |名字——姓--| |鲍勃------价值观------| |年龄---------------| | 30 ----------------| |-----地址-------| |------------------| |街道——邮政编码-| |价值------价值-----|

…等等,就像登记表一样, 正如您所看到的,我需要获得的值位于标题下的下一行

如何使用LinqToExcel.dll实现这一点。 如果我的工作表中有一个复选框,我如何才能选中或不选中所选的值

我的代码是c.net


Ty

据我所知,您的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++;
            }
        }
    }
}

好吧,我想这里的问题是;您在同一张工作表上有很多记录,还是只需要检索每张工作表上的一条记录?您好,我大约有40条记录。您好,ty,但我不能假设一行是标题,另一行是值。实际上,我的excel就像一个Web表单,字段像表格一样排列。我希望我能在这里附上excel=。它类似于:第一行标题一个字段***第二行值一个字段***第三行标题两个字段第四行值两个字段第五行标题***第六行值***第七行值第八行值***第九行标题一个字段第十行值一个字段..好的,现在我明白了,你能像我一样附加一个屏幕截图吗,它会比你的表格更清晰。我不能添加img,显然没有名声。
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++;
            }
        }
    }
}