Como importar todas as planilhas do Excel para DataSet em c #
Eu procurei na internet por isso e não consegui encontrar uma pergunta como essa. Todo mundo estava procurando uma maneira de importar uma folha individual no arquivo excel, mas o que eu quero é importar todas as folhas no arquivo paraDataTable
'pecadoDataSet
sem conhecer os nomes das folhas.
Eu não fiz muitas coisas com o Excel antes. Este é um código de exemplo e parcialmente funcional que encontrei na internet e só analisa o nome da planilha:
public static DataSet Parse(string fileName, string workSheetName)
{
string connectionString = string.Format("provider=Microsoft.Jet.OLEDB.4.0; data source={0};Extended Properties=Excel 8.0;", fileName);
string query = string.Format("SELECT * FROM [{0}$]", workSheetName);
DataSet data = new DataSet();
using (OleDbConnection con = new OleDbConnection(connectionString))
{
con.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(query, con);
adapter.Fill(data);
}
return data;
}
No código acima, como você vê, workSheetName deve ser passado para que a consulta possa saber para onde olhar para importar. No meu caso, quero que ele percorra todas as folhas, não importa o nome e importe-as paraDataTable
'sofáDataSet
.
Então, em essência, a última coisa será umDataSet
em que cadaDataTable
mantém linhas para cada folha no arquivo importado.