C#ASP程序导入Excel文件出错了。

一开始,建了一个测试网站,能导入Excel表格,没有报错,然后并入到其他程序时出错了,因为用到的Microsoft.Jet.OLEDB.4.0好像是32位组件,就在iis... 一开始,建了一个测试网站,能导入Excel表格,没有报错,然后并入到其他程序时出错了,因为用到的Microsoft.Jet.OLEDB.4.0好像是32位组件,就在iis那里启用了32位应用程序,然后就报错了, (Microsoft Jet 数据库引擎打不开文件''。 它已经被别的用户以独占方式打开,或没有查看数据的权限。) 然后把测试网站也放到iis里面去,也报错了,没用iis就不报错,怎么回事啊?导入代码如下:
protected void btnGetTableName_Click(object sender, EventArgs e)
{
this.ddlTables.Items.Clear();
string sFileName = this.fuMainOne.PostedFile.FileName.ToString();
_sFileName = sFileName;
if (sFileName.Length == 0)
{
ClientScript.RegisterStartupScript(this.GetType(), "", "alert('您没有选择要求导入的Excel文件!')");
return;
}
//sFileName = this.hiddenContent1.Value;
using (OleDbConnection oledbConn = new OleDbConnection())
{
try
{
oledbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sFileName + ";Extended Properties=Excel 8.0;";
oledbConn.Open();
using (DataTable dtOledb = oledbConn.GetSchema("Tables"))
{
using (DataTableReader dtReader = new DataTableReader(dtOledb))
{
while (dtReader.Read())
{
this.ddlTables.Items.Add(dtReader["TABLE_NAME"].ToString());
}
}
}
string SQLString = "select * from [" + ddlTables.SelectedValue.ToString() + "]";
OleDbCommand DBCommand = new OleDbCommand(SQLString, oledbConn);
IDataReader DBReader = DBCommand.ExecuteReader();
GridView1.DataSource = DBReader;
GridView1.DataBind();
DBReader.Close();
oledbConn.Close();
}
catch
{
ClientScript.RegisterStartupScript(this.GetType(), "", "alert('Excel文件格式不正确!')");
return;
}
}
}
展开
 我来答
百度网友b46dd640e
2016-09-14 · TA获得超过121个赞
知道答主
回答量:174
采纳率:0%
帮助的人:77.7万
展开全部
你这是要导入用户提交的excel文件吧。这种方法缺点很多,建议使用如下方法:
1、下载MS的office open xml sdk
2、用附带的组件装所有的低版本格式转为xlsx格式(调用外部命令)
3、用OFFICE的SDK在.net中直接访问,很简单的,SDK有自带帮助和范例。
阳光的雷咩咩
2016-09-14 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7822万
展开全部
ClientScript是什么玩意,为什么要用这个。
更多追问追答
追问
我也不知道,别人的东西,这个关系不大吧?
追答
关系很大。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
田响建站
2016-09-14 · 田响建站,纯手工建网站
田响建站
采纳数:3384 获赞数:2327

向TA提问 私信TA
展开全部
换个32的Excel文件试下看?
更多追问追答
追问
这怎么换?
追答
你的iis只支持32位的应用和程序

如果你的Excel文件是64位的,应该会出现意想不到的故障
所以要用32位的Excel文件测试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式