C#导入Excel数据常见问题
今天在做一个excle数据导入的时候遇到了一个奇葩问题,项目使用的是MVC,在VS2010里面调试的时候没有问题,可是当发布到本地IIS或服务器上时就出现了问题:
1、excel文件正在被使用;
2、没有安装Microsoft.Jet.OLEDB.4.0。
后来找公司的前辈帮忙,发现这个Bug其实很好解决。
问题1的产生原因是打开的链接忘记关闭了,所以才会导致这个错误提示。
问题2的产生原因可能是因为32位和64位的原因,因为我的机子64位的,IIS的应用池没有允许【启用32位应用程序】,所以最后导致了这个问题。
最后,po段c#导入excel数据的代码:
public string ImportData()
{
if (Request.Files.Count > && Request.Files[].ContentLength > )
{
HttpPostedFileBase file = Request.Files[];
string path = AppDomain.CurrentDomain.BaseDirectory + "Content\\Upload\\ItOperation";
string fileName = Path.GetFileNameWithoutExtension(file.FileName);
string extension = Path.GetExtension(file.FileName);
string newFileName = CurrentEmpCode + extension;//以当前时间命名另一份文件
if (file.ContentLength > )//不能超过4m
{
status = "'status:failed'";
name = "'name':'上传文件大小不能超过4M'";
ret = "{'error':1,'msg':'上传文件不能超过4M!'}";
}
else
{
string otherFilePath = Path.Combine(path, newFileName);
file.SaveAs(otherFilePath);
DataTable dtSheetName = new ExcelHelper().GetSheetNames(otherFilePath);
if (dtSheetName != null && dtSheetName.Rows.Count > )
{
string sheetName = dtSheetName.Rows[]["TABLE_NAME"].ToString();
if (sheetName != "")
{
DataTable dt = LoadExcelDataToTable(otherFilePath, sheetName, extension);
if (dt != null && dt.Rows.Count > )
{
//...你的逻辑
}
}
}
}
}
} public DataTable LoadExcelDataToTable(string path, string sheetName, string fileType)
{
string strConn = "";
if (fileType == ".xlsx")
{
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + path + ";" + "Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";
}
else if (fileType == ".xls")
{
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + path + ";" + "Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
}
OleDbConnection conn = new OleDbConnection(strConn);
DataTable dt = new DataTable();
try
{
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null; strExcel = "select * from [" + sheetName + "]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(dt);
}
catch
{
dt = null;
}
finally
{
conn.Close();
}
return dt;
}
C#导入Excel数据常见问题的更多相关文章
- SQL Server服务器上需要导入Excel数据的必要条件
SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Ex ...
- PLSQL Developer导入Excel数据
LSQL Developer导入Excel数据 最近处理将Excel数据导入Oracle的工作比较多.之前都是采用Sqlldr命令行导入的方式处理.每次导入不同格式的Excel表数据,都需要先把Exc ...
- 导入excel数据
前提条件:先要安装好EXCEL软件. 程序中经常要用到导入excel数据的功能.其实通过ole操作excel就简单的几行代码,但记性不好,经常要用经常要找, 还是作篇笔记吧. var ExcelApp ...
- (转)PLSQL Developer导入Excel数据
场景:近来在做加班记录的统计,主要是统计Excel表格中的时间,因为我对于Excel表格的操作不是很熟悉,所以就想到把表格中的数据导入到数据库中,通过脚本语言来统计,就很方便了!但是目前来看,我还没有 ...
- 结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程
1.bootstrap-fileinpu的简单介绍 在前面的随笔,我介绍了Bootstrap-table表格插件的具体项目应用过程,本篇随笔介绍另外一个Bootstrap FieInput插件的使用, ...
- 基于 Aspose.Cells与XML导入excel 数据----操作类封装
前言 导入excel数据, 在每个项目中基本上都会遇到,第三方插件或者基于微软office,用的最多的就是npoi,aspose.cells和c#基于office这三种方式,其中各有各的优缺点,在这也 ...
- 【转】 如何导入excel数据到数据库,并解决导入时间格式问题
在办公环境下,经常会用到处理excel数据,如果用写程序导入excel数据到数据库那就太麻烦了,涉及解析excel,还要各种格式问题,下面简单利用数据库本身支持的功能解决这类导入问题. 准备 创建表 ...
- Oracle导入excel数据快速方法
Oracle导入excel数据快速方法 使用PLSQL Developer工具,这个可是大名鼎鼎的Oracle DBA最常使用的工具. 在单个文件不大的情况下(少于100000行),并且目的 ...
- thinkphp整合系列之phpexcel导入excel数据
一:导入phpexcel /ThinkPHP/Library/Vendor/PHPExcel 二:导入excel的函数 /** * 导入excel文件 * @param string $file ex ...
随机推荐
- [AI]AI章2 框架比较
深度学习框架比较 神经网络一般包括:训练,测试两大阶段.训练:就是把训练数据(原料)和神经网络模型:如AlexNet.RNN等“倒进” 神经网络训练框架例如cafffe等然后用 CPU或GPU(真火) ...
- Python3实战系列之一(获取印度售后数据项目)
问题:公司在印度开设生产工厂并在当地销售手机,生产.销售系统均由印度开发维护.对总部需要的售后数据,采用每日在ftp上提供一个.xlsx文件,给总部使用.总部需要将此数据导入到总部的销量统计系统中,以 ...
- java 检查异常 和 非检查异常
个人见解 ,如果有问题 ,还希望大神们 指正 1. 非检查异常 又称运行时 异常 ,所有 继承自 RuntimeException 的异常都是 非检查异常 ,, 如果你不处理 会有 虚拟机 mai ...
- openssl编译安装-各种蛋疼
arm平台 ubuntu Linux xxxxxx 3.0.62 #2 PREEMPT Tue Apr 2 20:14:12 CST 2013 armv7l armv7l armv7l GNU/Li ...
- IOS初级:UITableView
先来看一下tableview 的结构(plain style). -------------------------------------- + header ...
- 转录组表达量计RPKM、FPKM、TPM说明
在转录组测序(RNA-Seq)中,基因的表达量是我们关注的重点.基因表达量的衡量指标有:RPKM.FPKM.TPM. RPKM:Reads Per Kilobase Million:说实话,这个英文说 ...
- New users can not log on Win8
方案: http://www.eightforums.com/tutorials/38838-user-profile-service-failed-sign-fix-windows-8-a.html ...
- Oracle服务器修改IP后
机房有两套网络,一套办公网,一套机房的内网,办公网可以通过vpn在其他地方访问,内网只能在公司办公室访问.团队有同事去外地办公,开发的时候需要通过客户端直连数据库,于是把数据库服务器的网线换到办公网的 ...
- 2018.12.31 NOIP训练 czy的后宫6(线性dp)
传送门 题意简述:给一个nnn个数的数列,你可以把它最多分成mmm段,求每段数之和的最大值的最小值,以及满足这个最小值的时候划分数列的方案数. 思路:第一个问题是二分经典问题,不妨设其答案为limli ...
- ueditor编辑器视频上传不能预览的问题
ps:来源 https://blog.csdn.net/eadela/article/details/76264168 修改ueditor.all.js文件 ueditor.all.js,17769行 ...