I have an excel sheet. It can be seen <a href="
http://www.gchma.com/issue.jpg">Here</a>
I am trying to read in each sheet and extract certain fields however some fields just dont seem to be part of the query. The fields I cannot get are Charge Date="03/22/07" and Acc#=11111
Code Below.
private void button3_Click(object sender, EventArgs e)
{
ConnString = "Provider=Microsoft.Jet.OL
EDB.4.0;Da
ta Source=" + textBox1.Text + ";Extended Properties='Excel 8.0;HDR=No'";
ADODB.Connection myConnect = new ADODB.Connection();
ADOX.Catalog myADOX = new ADOX.Catalog();
myConnect.Open(ConnString,
null, null, 0);
myADOX.ActiveConnection = myConnect;
foreach (ADOX.Table sheet in myADOX.Tables)
{
DataTable dt = ReadExcelSheet(sheet.Name)
;
}
myConnect.Close();
myADOX.ActiveConnection = null;
}
//------------------------
----------
----------
----------
----------
----
private DataTable ReadExcelSheet(string sheetName)
{
DataTable dt = new DataTable();
OleDbConnection objConn = new OleDbConnection(ConnString
);
objConn.Open();
if (objConn.State == ConnectionState.Open)
{
OleDbDataAdapter da;
DataSet ds;
OleDbCommand OldCmd = new OleDbCommand();
OldCmd.CommandText = "SELECT * FROM ["+sheetName+"]";
OldCmd.CommandTimeout = 120;
OldCmd.CommandType = CommandType.Text;
OldCmd.Connection = objConn;
da = new OleDbDataAdapter();
da.SelectCommand = OldCmd;
ds = new DataSet();
da.Fill(ds);
dt = ds.Tables[0];
objConn.Close();
int row = 1;
for (int i = 0; i < dt.Rows.Count; i++)
{
switch (row)
{
case 1:
if (dt.Rows[i][0].ToString().
Trim() == string.Empty)
{
row = 0;
i = i + 8;
}
else
{
Console.Write(dt.Rows[i][0
].ToString
() + ";" + dt.Rows[i][8].ToString() + ";" + dt.Rows[i][10].ToString() + ";" + dt.Rows[i][13].ToString() + ";");
}
break;
case 3: Console.Write(dt.Rows[i][0
].ToString
());
break;
case 5: Console.Write(dt.Rows[i][0
].ToString
());
break;
case 7: Console.Write(dt.Rows[i][0
].ToString
());
break;
case 9: row = 0;
Console.WriteLine();
break;
}
row++;
}
}
return dt;
}
Start Free Trial