C# 是否使用OldeDbConnection以第9行作为列名来读取excel工作表?

C# 是否使用OldeDbConnection以第9行作为列名来读取excel工作表?,c#,excel,oledbconnection,C#,Excel,Oledbconnection,我正在尝试使用oleDbConnection和OleDbDataAdapter读取excel工作表,然后用这些信息填充数据集。我需要弄清楚如何做的是忽略excel工作表中的前8行,并将其视为第9行是第一行来阅读(使列名成为第9行中的值) 谢谢, 亚历克斯退房 要在特定场景中添加一些输入,请执行以下操作:有一个具有Rows属性的工作表对象。签出 要在特定场景中添加一些输入:有一个工作表对象具有Rows属性。如果您对我建议使用的其他方法持开放态度,您可以在上面找到它,这样您将得到一个IQueryab

我正在尝试使用oleDbConnection和OleDbDataAdapter读取excel工作表,然后用这些信息填充数据集。我需要弄清楚如何做的是忽略excel工作表中的前8行,并将其视为第9行是第一行来阅读(使列名成为第9行中的值)

谢谢, 亚历克斯退房

要在特定场景中添加一些输入,请执行以下操作:有一个具有Rows属性的工作表对象。

签出


要在特定场景中添加一些输入:有一个工作表对象具有Rows属性。

如果您对我建议使用的其他方法持开放态度,您可以在上面找到它,这样您将得到一个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;
var excel=new ExcelQueryFactory(@“c:\temp\temp.xlsx”);
var q=来自excel.WorksheetRange(“A9”、“C12”)中的r
选择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;
var excel=new ExcelQueryFactory(@“c:\temp\temp.xlsx”);
int rowCount=excel.WorksheetNoHeader().Count();
var q=来自excel.WorksheetRange中的r(“A9”、“C”+行计数)
选择r;

如果您对我建议使用的其他方法持开放态度,您可以在上找到它,这样您将得到一个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;
var excel=new ExcelQueryFactory(@“c:\temp\temp.xlsx”);
var q=来自excel.WorksheetRange(“A9”、“C12”)中的r
选择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;
var excel=new ExcelQueryFactory(@“c:\temp\temp.xlsx”);
int rowCount=excel.WorksheetNoHeader().Count();
var q=来自excel.WorksheetRange中的r(“A9”、“C”+行计数)
选择r;

没有人回答我的问题好。。但我是在寂寞中发现的

我通过将excel表格读入数据表解决了这个问题。然后从数据表中删除前8行。然后我创建了第二个datatable,手动添加列(使用columns.Add命令),并使用foreach(OGdataTable中的行)将所有行添加到新表中


如果有人想进一步澄清这一点,请继续提问。

没有人很好地回答我的问题。。但我是在寂寞中发现的

我通过将excel表格读入数据表解决了这个问题。然后从数据表中删除前8行。然后我创建了第二个datatable,手动添加列(使用columns.Add命令),并使用foreach(OGdataTable中的行)将所有行添加到新表中


如果有人想对此进行更多澄清,请继续询问。

您是否熟悉循环、计数器等。。这实际上很简单,使用循环和循环内的关键字
continue
,直到满足条件。您熟悉循环、计数器等吗。。这实际上很简单,使用循环和循环内的关键字
continue
,直到满足条件。您熟悉循环、计数器等吗。。这实际上非常简单,使用循环和循环内的关键字
continue
,直到满足条件。。