You can use OleDb
For example;
Select
//Definis la ruta
String filename=@"D:\dem.xlsx";
//Definis el connectionString
String connection=@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+filename+";Extended Properties=\"Excel 12.0 Xml;HDR=YES;\"";
//Definis la Query
String Command="Select * from [sheets$]";
//Instancias un nuevo objeto de tipo OleDbConnection y abris la conexión con .Open();
OleDbConnection con=new OleDbConnection(connection);
con.Open();
//Definisun Command pasándole tu query y el objeto de conexión
OleDbCommand cmd=new OleDbCommand(Command,con);
//Por último creas un Adapter y se lo asignas a un DataTable
OleDbDataAdapter db=new OleDbDataAdapter(cmd);
DataTable dt=new DataTable();
db.Fill(dt);
//Ahora ya tenes acceso a la información del documento excel, podes, por ejemplo, asignarla como DataSource de un dataGridView
dataGridView1.DataSource=dt;
Insert
//Definis la ruta
String filename=@"D:\dem.xlsx";
//Definis el connectionString
String connection=@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+filename+";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1;\"";
//Definis tu Insert
String Command="insert into [sheets$](Codigo,Titulo, Autor, Area) values('valor_codigo','valor_titulo', 'valor_autor', valor_area)";
//Instancias un OleDbConnection y abris la conexión.
OleDbConnection con=new OleDbConnection(connection);
con.Open();
//Por último, creas el comando y lo ejecutas
OleDbCommand cmd=new OleDbCommand(Command,con);
cmd.ExecuteNonQuery();
I hope it's what you were looking for!