如何选择不同的Excel表格? [英] How can I select different excel sheets?

查看:75
本文介绍了如何选择不同的Excel表格?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想选择一个excel文件的不同页面,但是下一个OleDbDataAdapter使用以前的工作表数据(我的excel文件有两个页面,namly Rv和NumOfmachine)。





这是我的代码:

DataNumOfmachine使用Rv数据表。









I want to select diffrent sheets of a single excel file, but the next OleDbDataAdapter uses the previous sheet data (my excel file has two sheets namly Rv and NumOfmachine).


this is my code:
the DataNumOfmachine uses the Rv data sheet.




OleDbConnection Amir = new OleDbConnection();
    OleDbCommand AmirCom = new OleDbCommand();
    OleDbDataAdapter DataRv, DataNumOfmachine = new OleDbDataAdapter();
    DataSet AmirDataSet = new DataSet();
    DataTable AmirDataTable = new DataTable();
    
    Amir.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\DataSource.xlsx;Extended Properties='Excel 12.0;HDR=YES';";
    //Amir.Open();
    
    

    DataRv = new OleDbDataAdapter("select * from [Rv$]", Amir);
    //AmirData.Fill(AmirDataSet);
    DataRv.Fill(AmirDataTable);

    Double[,] Rv = new Double[G, O];
    for (g = 0; g < G; g++)
        for (o = 0; o < O; o++)
            Rv[g, o] = int.Parse(AmirDataTable.Rows[g][o]+ "");

    

 
    DataNumOfmachine = new OleDbDataAdapter("select * from [NumOfmachine$]", Amir);
    //DataNumOfmachine.Fill(AmirDataSet);
    DataNumOfmachine.Fill(AmirDataTable);
    
    int[] NumOfmachine = new int[S];
    for (s = 0; s < S; s++)
        NumOfmachine[s] = int.Parse(AmirDataTable.Rows[0][s] + "");





我尝试过:



如何选择不同的Excel表格?



What I have tried:

How can I select different Excel sheets?

推荐答案

,Amir);
// AmirData.Fill(AmirDataSet);
DataRv.Fill(AmirDataTable);

Double [,] Rv = new Double [G,O];
for (g = 0 ; g < G; g ++)
for (o = 0 ; o < O; o ++)
Rv [g,o] = int .Parse(AmirDataTable.Rows [g] [o] + );




DataNumOfmachine = new OleDbDataAdapter( select [from [NumOfmachine
", Amir); //AmirData.Fill(AmirDataSet); DataRv.Fill(AmirDataTable); Double[,] Rv = new Double[G, O]; for (g = 0; g < G; g++) for (o = 0; o < O; o++) Rv[g, o] = int.Parse(AmirDataTable.Rows[g][o]+ ""); DataNumOfmachine = new OleDbDataAdapter("select * from [NumOfmachine


,Amir);
// DataNumOfmachine.Fill(AmirDataSet);
DataNumOfmachine.Fill(AmirDataTable) );

int [] NumOfmachine = new INT [S];
for (s = 0 ; s < ; S; s ++)
NumOfmachine [s] = int .Parse(AmirDataTable.Rows [ 0 ] [s] + );
", Amir); //DataNumOfmachine.Fill(AmirDataSet); DataNumOfmachine.Fill(AmirDataTable); int[] NumOfmachine = new int[S]; for (s = 0; s < S; s++) NumOfmachine[s] = int.Parse(AmirDataTable.Rows[0][s] + "");





我尝试过:



如何选择不同的Excel表格?



What I have tried:

How can I select different Excel sheets?


如果您想通过OleDb枚举Excel工作表,可以使用 OleDbConnection.GetSchema方法(字符串)(System.Data.OleDb) [ ^ ]



用法:

If you would like to enum Excel sheets via OleDb, you can use OleDbConnection.GetSchema Method (String) (System.Data.OleDb)[^]

Usage:
string sFileName = @"FullFileNmae.xlsx";
string sConStr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=YES';", sFileName);

using (OleDbConnection connection = new OleDbConnection(sConStr))
{
    connection.Open();
    DataTable dt = new DataTable();
    dt = connection.GetSchema("TABLES");
    var sheets = dt.AsEnumerable()
        .Select(x=>x.Field<string>("TABLE_NAME"))
        .ToList();

}





上面的代码应返回工作表名称列表,例如:



Above code should return a list of sheet names, for example:

Sheet2


这篇关于如何选择不同的Excel表格?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆