ASP.NET读取excel 很奇怪的问题

visual_studi 2013-12-27 11:44:32
我做了一个导入库存的功能 。是导入excel文件。我先读取文件保存到文件夹。然后在读取文件夹中的excel文件。把数据显示在表格中。

在本地测试通过了。但我部署到本地iis 和外网的iis都不行。

问题:本地iis测试:我部署到iis,根据iis配置的链接访问。

文件上传了。但读取出来的数据(一个DataTable保存数据, 是空)我测试了。路径正确。文件也上传成功。但就是读不出。

但我通过vs2010 测试就没错。

这是什么原因。大家有遇到过的吗。谢谢了。
...全文
241 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
visual_studi 2013-12-27
  • 打赏
  • 举报
回复
引用 4 楼 liuchaolin 的回复:
Microsoft.ACE.OLEDB.12.0

你这驱动要看你服务器上边的版本是多少的

如果是windows 2003系统可以用这个试试
Microsoft.Jet.OLEDB.4.0;

你好。你是说看我本地IIS吗
我现在是vs2010测试可以。但部署到本地iis自己的电脑。通过iis访问就不行。我的是win7 64位电脑 iis版本为6.1 改了还是不行。
md5e 2013-12-27
  • 打赏
  • 举报
回复
Microsoft.ACE.OLEDB.12.0 你这驱动要看你服务器上边的版本是多少的 如果是windows 2003系统可以用这个试试 Microsoft.Jet.OLEDB.4.0;
feng_yun123 2013-12-27
  • 打赏
  • 举报
回复
<font color="red">顶一下</font>
visual_studi 2013-12-27
  • 打赏
  • 举报
回复
引用 1 楼 liuchaolin 的回复:
关键你是怎么操作excel的

  private DataTable getTable(string fileName)
        {
            try
            {
                //判断文件是否存在
                if (!File.Exists(fileName)) { Response.Write("<script>alert('文件不存在,请重新上传。');</script>"); return null; }


                DataSet ds = new DataSet();
                OleDbConnection objConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";" + "Extended Properties='Excel 8.0;IMEX=1'"); //Excel 8.0;HDR=NO;IMEX=1中的IMEX=0;
                objConn.Open();
                DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);

                string tableName = schemaTable.Rows[0][2].ToString().Trim();//获取 Excel 的表名,默认值是sheet1

                //string queryField = "型号,品牌,封装,年份,包装,数量,单价,订货周期,备注";
                //string strSql = "select " + queryField + " from [" + tableName + "]";

                string strSql = "select * from [" + tableName + "]";
                //string strSql = "select * from [" + tableName + "]";

                OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
                OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);
                myData.Fill(ds, tableName);//填充数据
                return ds.Tables[0];
            }
            catch (Exception ex)
            {
                //获取文件名
                string fName = fileName.Substring(fileName.LastIndexOf("\\") + 1);
                //MessageBox.Show(ex.Message);
                return null;
            }
        }
这是我读取excel的文件。本地IDE测试没问题。但在本地IIS就不行。这代码有问题吗。
md5e 2013-12-27
  • 打赏
  • 举报
回复
关键你是怎么操作excel的
visual_studi 2013-12-27
  • 打赏
  • 举报
回复
引用 7 楼 Zenos 的回复:
[quote=引用 6 楼 visual_studi 的回复:] 别沉了啊。自己顶一下。
没明白你是怎么读取的Excel文件,我们项目使用的是 Spread 电子表格,兼容性比较好。你是自己写代码读取吗?[/quote] 我解决了。谢谢大家。http://www.cnblogs.com/nsky/p/3494375.html
想去云南 2013-12-27
  • 打赏
  • 举报
回复
引用 6 楼 visual_studi 的回复:
别沉了啊。自己顶一下。
没明白你是怎么读取的Excel文件,我们项目使用的是 Spread 电子表格,兼容性比较好。你是自己写代码读取吗?
visual_studi 2013-12-27
  • 打赏
  • 举报
回复
别沉了啊。自己顶一下。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧