asp.net FileUpload1导入EXCL文件到数据库的问题

y63964632 2010-08-23 12:30:48

public DataSet ImportExcel(string fileName)
{
//判断是否安装EXCEL
Excel.Application xlApp = new Excel.ApplicationClass();
if (xlApp == null)
{
_ReturnStatus = -1;
_ReturnMessage = "无法创建Excel对象,可能您的计算机未安装Excel";
return null;
}

//判断文件是否被其他进程使用
Excel.Workbook workbook;

workbook = xlApp.Workbooks.Open(fileName, 0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, 1, 0);


//获得所有Sheet名称
int n = workbook.Worksheets.Count;
string[] SheetSet = new string[n];
System.Collections.ArrayList al = new System.Collections.ArrayList();
for (int i = 1; i <= n; i++)
{
SheetSet[i - 1] = ((Excel.Worksheet)workbook.Worksheets[i]).Name;
}

//释放Excel相关对象
workbook.Close(null, null, null);
xlApp.Quit();
if (workbook != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
workbook = null;
}
if (xlApp != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
xlApp = null;
}
GC.Collect();

//把EXCEL导入到DataSet
DataSet ds = new DataSet();
string connStr = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + fileName + ";Extended Properties=Excel 8.0";
using (OleDbConnection conn = new OleDbConnection(connStr))
{
conn.Open();
OleDbDataAdapter da;
for (int i = 1; i <= n; i++)
{
string sql = "select * from [" + SheetSet[i - 1] + "$] ";
da = new OleDbDataAdapter(sql, conn);
da.Fill(ds, SheetSet[i - 1]);
da.Dispose();
}
conn.Close();
conn.Dispose();
}
return ds;
}

传进来的fileName 为excl文件名字 为什么报错 无法找到xls文件

调用的时候

DataSet ds = ex.ImportExcel(FileUpload1.PostedFile.FileName);



无法找到“11.xls”。请检查文件名的拼写,并检查文件位置是否正确。

如果您正试图从“文件”菜单上最近使用的文件列表中打开文件,请确认文件未被重命名、移动或删除。


用户代码未处理 System.Runtime.InteropServices.COMException
HelpLink="D:\\Program Files\\Microsoft Office\\OFFICE11\\2052\\xlmain11.chm"
Message="无法找到“11.xls”。请检查文件名的拼写,并检查文件位置是否正确。\n\n如果您正试图从“文件”菜单上最近使用的文件列表中打开文件,请确认文件未被重命名、移动或删除。"
Source="Microsoft Office Excel"
ErrorCode=-2146827284
StackTrace:
在 Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
在 NXKJT.ExcelIO.ImportExcel(String fileName) 位置 e:\Visual Studio 2008\Projects\NXKJT\NXKJT\ExcelIO.cs:行号 67
在 NXKJT.InputUsers.Button2_Click(Object sender, EventArgs e) 位置 e:\Visual Studio 2008\Projects\NXKJT\NXKJT\InputUsers.aspx.cs:行号 49
在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
在 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
...全文
181 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
y63964632 2010-08-23
  • 打赏
  • 举报
回复
嗯 我先试验下
孟子E章 2010-08-23
  • 打赏
  • 举报
回复
FileUpload1.PostedFile.FileName是客户端的文件名,你需要保存成服务器端的文件路径啊
尐孑 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 findcaiyzh 的回复:]
要将FileUpload中的内容保存到硬盘上的文件在中用Excel的函数打开。
FileUpload.FileName只是文件名,这个文件并不存在。
[/Quote]
关注一下
宝_爸 2010-08-23
  • 打赏
  • 举报
回复
savePath = //临时文件的全路径
FileUpload1.SaveAs(savePath);
DataSet ds = ex.ImportExcel(savePath);
宝_爸 2010-08-23
  • 打赏
  • 举报
回复
要将FileUpload中的内容保存到硬盘上的文件在中用Excel的函数打开。
FileUpload.FileName只是文件名,这个文件并不存在。
Adechen 2010-08-23
  • 打赏
  • 举报
回复
先上传到server段,再读取server段的文件

62,047

社区成员

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

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

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

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