2

我有这样的excel...

|------------表格----------------|
|-------------------------------------------------|
| 姓名-------- 姓氏----|
| 鲍勃 ---------- 价值 ------------|
| 年龄 -----------------|
| 30 -------------------------------|
|---------地址-------------|
|-------------------------------------------------|
| 街道------- 邮政编码--|
| 价值 ---------- 价值 ----------|

..等等,就像一个注册表单,你可以看到我需要得到的值,在下一行(在标题下)。

如何使用 LinqToExcel.dll 做到这一点。如果我的工作表中有一个 CheckBox,我怎样才能获得选定的值(选中与否)。

我的代码(c#.net)

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

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

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 回答