需要实现如下功能:将一个excel文件(不规则)数据抽取存入数据库
我的方法:先以excel为数据源,存入dataset,再从dataset中固定单元格取数据
问题:大多数单元格数据取出没有问题,但有些单元格比如数字,日期,百分比等抽取出数据为空.若将这些单元格格式改为文本,excel文件该单元格左上角有一个绿色的箭头提示错误,但这种情况下可以正常抽取数据.有没有办法不用更改单元格格式就可以直接抽取数据无误?
程序代码如下:
string  strSheetName=sheet.Text;StringBuilder sbConn = new StringBuilder();
sbConn.Append(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+strFilePath);
sbConn.Append(";Extended Properties=");
sbConn.Append(Convert.ToChar(34));
sbConn.Append("Excel 8.0;HDR=1;IMEX=0");
sbConn.Append(Convert.ToChar(34));
dbConn dbcon = new dbConn();
dbcon.objConn.ConnectionString = sbConn.ToString();
try
{
dbcon.objConn.Open();
}
catch
{
Response.Write("<script>alert('失败,请确保文件格式、路径正确且文件未被其他程序使用');</script>");
dbcon.objConn.Close();
return;
}dbcon.objCmd.Connection = dbcon.objConn;
DataSet ds;

try
{
string strSQL ="select * from ["+strSheetName+"$]";
dbcon.objAdapter = new OleDbDataAdapter(strSQL,dbcon.objConn);
dbcon.objBuider = new OleDbCommandBuilder(dbcon.objAdapter);  ds = new DataSet(); dbcon.objAdapter.Fill(ds,"MyTable");
dbcon.closeConn();
}
catch
{
Response.Write("<script>alert('从文件读数据出错,请确保EXCEL的页名正确');</script>");
dbcon.closeRecordset();
dbcon.closeConn();
return;
}

//取出成员卡号姓名,组织代码名称,报告起始时间结束时间
string Empcardno = ds.Tables["MyTable"].Rows[2].ItemArray[2].ToString();
string Empname = ds.Tables["MyTable"].Rows[3].ItemArray[2].ToString();
string Orgcode = ds.Tables["MyTable"].Rows[2].ItemArray[4].ToString();
string Orgname = ds.Tables["MyTable"].Rows[2].ItemArray[6].ToString();
string Srepdate = ds.Tables["MyTable"].Rows[4].ItemArray[2].ToString();
string Erepdate = ds.Tables["MyTable"].Rows[4].ItemArray[4].ToString();