使用 OleDbConnection 读取 excel sheet 使用第 9 行作为列名?
Use OldeDbConnection to read excel sheet using 9th row as the column names?
我正在尝试使用 oleDbConnection 和 OleDbDataAdapter 读取 excel sheet,然后用该信息填充数据集。我需要弄清楚如何做的是忽略 excel sheet 中的前 8 行并读取它,就好像第 9 行是第一行,(使列名称成为第 9 行中的值行)。
谢谢,
亚历克斯
查看 How to open an Excel file in C#?
要针对您的特定场景添加一些输入:有一个具有 Rows 属性的 Worksheet 对象。
如果您对其他方法持开放态度,我建议使用 LinqToExcel you can find it on NuGet,这样您最终会得到一个 IQueryable 对象,而不是一些混乱的数据集,例如:
正在定义您的实体:
class MyType
{
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }
}
如果您知道要读取的范围,您可以执行以下操作:
var excel=new ExcelQueryFactory(@"c:\temp\temp.xlsx");
var q = from r in excel.WorksheetRange<MyType>("A9","C12")
select r;
然后您可以使用 q 进行过滤、迭代等...
如果您不知道文件中有多少行来定义范围,您可以这样做:
var excel=new ExcelQueryFactory(@"c:\temp\temp.xlsx");
int rowCount=excel.WorksheetNoHeader().Count();
var q = from r in excel.WorksheetRange<MyType>("A9","C"+rowCount)
select r;
没有人很好地回答我的问题..但我是在寂寞的时候想出来的。
我通过将 excel sheet 读入数据表解决了这个问题。然后从数据表中删除前 8 行。然后我创建了第二个数据 table,手动添加了列(使用 Columns.Add 命令)并使用 foreach(OGdataTable 中的行)将所有行添加到新的 table.
如果有人想对此进行更多说明,请继续提问。
我正在尝试使用 oleDbConnection 和 OleDbDataAdapter 读取 excel sheet,然后用该信息填充数据集。我需要弄清楚如何做的是忽略 excel sheet 中的前 8 行并读取它,就好像第 9 行是第一行,(使列名称成为第 9 行中的值行)。
谢谢, 亚历克斯
查看 How to open an Excel file in C#?
要针对您的特定场景添加一些输入:有一个具有 Rows 属性的 Worksheet 对象。
如果您对其他方法持开放态度,我建议使用 LinqToExcel you can find it on NuGet,这样您最终会得到一个 IQueryable 对象,而不是一些混乱的数据集,例如:
正在定义您的实体:
class MyType
{
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }
}
如果您知道要读取的范围,您可以执行以下操作:
var excel=new ExcelQueryFactory(@"c:\temp\temp.xlsx");
var q = from r in excel.WorksheetRange<MyType>("A9","C12")
select r;
然后您可以使用 q 进行过滤、迭代等...
如果您不知道文件中有多少行来定义范围,您可以这样做:
var excel=new ExcelQueryFactory(@"c:\temp\temp.xlsx");
int rowCount=excel.WorksheetNoHeader().Count();
var q = from r in excel.WorksheetRange<MyType>("A9","C"+rowCount)
select r;
没有人很好地回答我的问题..但我是在寂寞的时候想出来的。
我通过将 excel sheet 读入数据表解决了这个问题。然后从数据表中删除前 8 行。然后我创建了第二个数据 table,手动添加了列(使用 Columns.Add 命令)并使用 foreach(OGdataTable 中的行)将所有行添加到新的 table.
如果有人想对此进行更多说明,请继续提问。