C# 正在尝试获取一个“的列表”;表格「;在excel文档中

C# 正在尝试获取一个“的列表”;表格「;在excel文档中,c#,excel,C#,Excel,我有一个excel文档,它有两个表(选择了数据,选择了表格格式,并给了它一个名称) 我正在尝试打开工作簿并获取文档中的所有表 下面的代码返回工作簿中的一组节,但不返回特定的表 这可能吗 public partial class Form1 : Form { private DataSet _excelDataSet; public Form1() { InitializeComponent(); var filePath = "c:\

我有一个excel文档,它有两个表(选择了数据,选择了表格格式,并给了它一个名称)

我正在尝试打开工作簿并获取文档中的所有表

下面的代码返回工作簿中的一组节,但不返回特定的表

这可能吗

public partial class Form1 : Form
{
    private DataSet _excelDataSet;

    public Form1()
    {
        InitializeComponent();


        var filePath = "c:\\temp\\orderforms\\SampleOrder.xlsx";

        var tmpName = Path.GetTempFileName() + Path.GetExtension(filePath);
        File.Copy(filePath, tmpName);
        filePath = tmpName;


        var excelReader = GetExcelDataReader(filePath, true);
        excelReader.IsFirstRowAsColumnNames = true;

        _excelDataSet = excelReader.AsDataSet();

    }

    private static IExcelDataReader GetExcelDataReader(string path, bool isFirstRowAsColumnNames)
    {
        using (var fileStream = File.Open(path, FileMode.Open, FileAccess.Read))
        {
            IExcelDataReader dataReader;

            if (path.EndsWith(".xls"))
                dataReader = ExcelReaderFactory.CreateBinaryReader(fileStream);
            else if (path.EndsWith(".xlsx"))
                dataReader = ExcelReaderFactory.CreateOpenXmlReader(fileStream);
            else
                throw new FileToBeProcessedIsNotInTheCorrectFormatException("The file to be processed is not an Excel file");

            dataReader.IsFirstRowAsColumnNames = isFirstRowAsColumnNames;

            return dataReader;
        }
    }

    private void btnLoadOrder_Click(object sender, EventArgs e)
    {

        DataTable dt1 = _excelDataSet.Tables[Convert.ToInt32(textBox1.Text)];

        dataGridView2.DataSource = dt1;
        MessageBox.Show(dt1.TableName);
    }

}使用linqtoexcel库。可以很容易地找到有关如何使用此库的示例

var excel=new ExcelQueryFactory();
var excel = new ExcelQueryFactory();
excel.FileName = "c:\\temp\\orderforms\\orderform.xlsx";
var order = from x in excel.NamedRange<SunglassesOrder>("Order")
                     where x.Qty!=""
                     select x;
dataGridView1.DataSource = order.ToList();
excel.FileName=“c:\\temp\\orderforms\\orderform.xlsx”; 变量顺序=excel.NamedRange中的x(“顺序”) 其中x.数量="" 选择x; dataGridView1.DataSource=order.ToList();
谢谢Jaykumar,这是我的工作版本var excel=new ExcelQueryFactory();excel.FileName=“c:\\temp\\orderforms\\my order form.xlsx”;var order=从excel.NamedRange(“订单”)中的x开始,其中x.数量=“”选择x;dataGridView1.DataSource=order.ToList();