出现的问题是:
1.(当这么写时string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + filePath + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'")外部表不是预期的格式。
2.(当改成Extended Properties ='Excel 12.0;)时出现 找不到可安装的 ISAM。注:我使用的是office2007,需要改什么地方?如果是office2003需要改什么地方? 谢谢关注和解决!!!!!!!!方法如下:
====================================================================================================================public void EcxelToDataGridView(string filePath, DataGridView dgv)
{
//根据路径打开一个Excel文件并将数据填充到DataSet中
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + filePath + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";//导入时包含Excel中的第一行数据,并且将数字和字符混合的单元格视为文本进行导入
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
DataSet ds = null;
strExcel = "select * from [sheet1$]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
ds = new DataSet();
myCommand.Fill(ds, "table1"); //根据DataGridView的列构造一个新的DataTable
System.Data.DataTable tb = new System.Data.DataTable();
foreach (DataGridViewColumn dgvc in dgv.Columns)
{
if (dgvc.Visible && dgvc.CellType != typeof(DataGridViewCheckBoxCell))
{
DataColumn dc = new DataColumn();
dc.ColumnName = dgvc.DataPropertyName;
//dc.DataType = dgvc.ValueType;//若需要限制导入时的数据类型则取消注释,前提是DataGridView必须先绑定一个数据源那怕是空的DataTable
tb.Columns.Add(dc);
}
} //根据Excel的行逐一对上面构造的DataTable的列进行赋值
foreach (DataRow excelRow in ds.Tables[0].Rows)
{
int i = 0;
DataRow dr = tb.NewRow();
foreach (DataColumn dc in tb.Columns)
{
dr[dc] = excelRow[i];
i++;
}
tb.Rows.Add(dr);
}
//在DataGridView中显示导入的数据
dgv.DataSource = tb;
}
1.(当这么写时string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + filePath + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'")外部表不是预期的格式。
2.(当改成Extended Properties ='Excel 12.0;)时出现 找不到可安装的 ISAM。注:我使用的是office2007,需要改什么地方?如果是office2003需要改什么地方? 谢谢关注和解决!!!!!!!!方法如下:
====================================================================================================================public void EcxelToDataGridView(string filePath, DataGridView dgv)
{
//根据路径打开一个Excel文件并将数据填充到DataSet中
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + filePath + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";//导入时包含Excel中的第一行数据,并且将数字和字符混合的单元格视为文本进行导入
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
DataSet ds = null;
strExcel = "select * from [sheet1$]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
ds = new DataSet();
myCommand.Fill(ds, "table1"); //根据DataGridView的列构造一个新的DataTable
System.Data.DataTable tb = new System.Data.DataTable();
foreach (DataGridViewColumn dgvc in dgv.Columns)
{
if (dgvc.Visible && dgvc.CellType != typeof(DataGridViewCheckBoxCell))
{
DataColumn dc = new DataColumn();
dc.ColumnName = dgvc.DataPropertyName;
//dc.DataType = dgvc.ValueType;//若需要限制导入时的数据类型则取消注释,前提是DataGridView必须先绑定一个数据源那怕是空的DataTable
tb.Columns.Add(dc);
}
} //根据Excel的行逐一对上面构造的DataTable的列进行赋值
foreach (DataRow excelRow in ds.Tables[0].Rows)
{
int i = 0;
DataRow dr = tb.NewRow();
foreach (DataColumn dc in tb.Columns)
{
dr[dc] = excelRow[i];
i++;
}
tb.Rows.Add(dr);
}
//在DataGridView中显示导入的数据
dgv.DataSource = tb;
}
解决方案 »
- 帮忙解决这个问题。。。
- 关于使用webbrowser抓取网页数据的问题
- 如何把table中的数据全部提交到数据库中?
- C#怎么让界面设计上声音效果??谢谢
- 关于ODP.net 里面的OracleParameter绑定的问题
- 如何判断计算机是不是已经连上internet了呢?
- 怎么让C#程序在没有安装VS.net的win2000中运行呀?需要安装什么软件吗?
- 请教高手,如何同时写一个文件,又保证内容不丢失?谢谢。
- datagrid中,我点击某个cell时,如何使当前行高亮,即显示此行的背景色.
- 将DataSet数据更新到数据库中相应表得问题!!!!急...在线等候...分可加!!!
- 输出当前页面到word
- treeview 的代码如何修改
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
之后就出现下面提示!!! 这是怎么回事!???未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。
我才刚进来,不行呀……好像现在大都停留在office2003上吧?用2007会不会有兼容性问题?