C# 如何使用LinqToExcel获取没有标头的单元格值
我有一个像这样的excel |------形式--------| |------------------| |名字——姓--| |鲍勃------价值观------| |年龄---------------| | 30 ----------------| |-----地址-------| |------------------| |街道——邮政编码-| |价值------价值-----| …等等,就像登记表一样, 正如您所看到的,我需要获得的值位于标题下的下一行 如何使用LinqToExcel.dll实现这一点。 如果我的工作表中有一个复选框,我如何才能选中或不选中所选的值 我的代码是c.netC# 如何使用LinqToExcel获取没有标头的单元格值,c#,.net,linq,C#,.net,Linq,我有一个像这样的excel |------形式--------| |------------------| |名字——姓--| |鲍勃------价值观------| |年龄---------------| | 30 ----------------| |-----地址-------| |------------------| |街道——邮政编码-| |价值------价值-----| …等等,就像登记表一样, 正如您所看到的,我需要获得的值位于标题下的下一行 如何使用LinqToExcel.d
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++;
}
}
}
}