0
我有一个有两个表格(选择数据并选择格式作为表格并赋予其名称)的Excel文档。尝试获取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);
}
}
感谢Jaykumar, 这是我的工作版本 无功练成=新ExcelQueryFactory(); excel.FileName =“c:\\ temp \\ orderforms \\ my order form.xlsx”; var order = from x in excel.NamedRange(“Order”) 其中x.Qty!=“” select x; dataGridView1.DataSource = order.ToList(); –
Jimmy