`
wjm901215
  • 浏览: 154093 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ASP.NET中上传并读取Excel文件数据,附后生成EXCEL及杀掉EXCEL进程。

阅读更多
本文通过一个简单的例子,实现读取Excel数据文件。

首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件、一个文件控件和一个按钮控件。

<INPUT id="File1" type="file" name="File1" runat="server">
<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
<asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>

在代码视图中首先导入OleDb命名空间:
using System.Data.OleDb;

在按钮的单击事件中输入如下代码:

string strPath="c:\\test\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls";

File1.PostedFile.SaveAs(strPath);

string mystring="Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '"+ strPath +"';Extended Properties=Excel 8.0";

OleDbConnection cnnxls = new OleDbConnection (mystring);

OleDbDataAdapter myDa =new OleDbDataAdapter("select * from [Sheet1$]",cnnxls);

DataSet myDs =new DataSet();

myDa.Fill(myDs);

DataGrid1.DataSource=myDs.Tables[0];

DataGrid1.DataBind();

其中C:\test对ASPNET用户要有读写的权限.




string staFile = @"D:\temp\xls\" + "a3";
System.Reflection.Missing miss = System.Reflection.Missing.Value;
Excel.ApplicationClass m_objExcel = new Excel.ApplicationClass();
m_objExcel.Visible = false;
Excel.Workbooks m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
Excel.Workbook m_objBook = (Excel.Workbook)(m_objBooks.Add(miss));
Excel.Worksheet m_objSheet = (Excel.Worksheet)m_objBook.ActiveSheet;
//向Excel文件中写入数据
Excel.Range er = m_objSheet.get_Range((object)"A1", System.Reflection.Missing.Value);
er.Value2 = "dfadfa";
m_objExcel.DisplayAlerts = false;
m_objBook.SaveAs(staFile + i.ToString() + ".xls", miss, miss, miss, miss, miss, Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss, miss, miss);
m_objBook.Close(false, miss, miss);
m_objBooks.Close();
m_objExcel.Quit();

if (m_objExcel != null)
{
int generation = 0;
m_objExcel.UserControl = false;
//如果您将 DisplayAlerts 属性设置为 False,则系统不会提示您保存任何未保存的数据。 _xlApp.DisplayAlerts = false;
if (m_objBook != null)
{
//如果将 Workbook 的 Saved 属性设置为 True,则不管您有没有进行更改,Excel 都不会提示保存它
//_xlWorkbook.Saved = true;
m_objExcel.Quit();
generation = System.GC.GetGeneration(m_objExcel);
m_objExcel = null;
System.GC.Collect(generation);
}


说明一下:
private Excel.Application _xlApp; //Excel应用程序
private Excel.Workbook _xlWorkbook; //获取Excel工作薄,默认为调用Open([Template])时创建
private Object oMissing = System.Reflection.Missing.Value; //实例化对象时缺省参数


我们实例并打开Excel时至少会用到
xlApp= new Excel.ApplicationClass();

创建一个Excel应用,可是一般每实例一次就产生一个Excel进程,这里提供安全彻底关闭实例Excel.Application后产生的进程,方法中的_xlWorkbook为实例ApplicationClass后
_xlWorkbook = _xlApp.Workbooks.Add(oMissing); //创建并返回Excel工作薄



/// <summary>
/// 关闭实例Excel.Application后产生的进程
/// </summary>
public void Close()
{
if (_xlApp != null)
{
int generation = 0;

_xlApp.UserControl = false;

//如果您将 DisplayAlerts 属性设置为 False,则系统不会提示您保存任何未保存的数据。
//_xlApp.DisplayAlerts = false;

if (_xlWorkbook != null)
{
//如果将 Workbook 的 Saved 属性设置为 True,则不管您有没有进行更改,Excel 都不会提示保存它
//_xlWorkbook.Saved = true;
try
{
// //经过实验,这两句写不写都不会影响进程驻留。
// //如果注释掉的话,即使用户手动从界面上关闭了本程序的Excel,也不会影响
// _xlWorkbook.Close(oMissing,oMissing,oMissing);
// _xlWorkbook = null;

}
catch
{
//用户手动从界面上关闭了本程序的Excel窗口
}
}

//即使用户手动从界面上关闭了,但是Excel.Exe进程仍然存在,用_xlApp.Quit()退出也不会出错,用垃圾回收彻底清除
_xlApp.Quit();

//System.Runtime.InteropServices.Marshal.ReleaseComObject((object)_xlApp);

generation = System.GC.GetGeneration(_xlApp);
_xlApp = null;

//虽然用了_xlApp.Quit(),但由于是COM,并不能清除驻留在内存在的进程,每实例一次Excel则Excell进程多一个。
//因此用垃圾回收,建议不要用进程的KILL()方法,否则可能会错杀无辜啊:)。
System.GC.Collect(generation);
}

oMissing = null;
}
分享到:
评论

相关推荐

    ASP.NET中上传并读取Excel文件数据

    在ASP.NET环境中,上传并读取Excel文件数据是一项常见的任务,尤其在数据处理、报表生成或数据导入导出等场景中。以下将详细介绍这个过程涉及的关键知识点。 首先,我们需要了解如何在ASP.NET中实现文件上传。ASP...

    三种ASP.NET读取Excel文件的方法浅析(含完整代码)

    ### ASP.NET读取Excel文件的方法浅析 #### 方法一:使用OleDB读取Excel文件 **概述** 本文档介绍了一种通过OleDB访问Excel文件的方式,将其作为数据源来读取其中的数据。这种方法适用于Excel文件版本为97至2003...

    ASP.NET中读取excel内容,并显示在界面上

    总的来说,ASP.NET中读取Excel内容并显示的过程涉及文件上传、Excel数据处理和前端展示等多个步骤。理解这些步骤以及如何在C#中操作Excel文件,是开发此类功能的关键。通过熟练运用这些技术,开发者可以构建出能够...

    asp.net生成Excel文件

    在ASP.NET环境中生成Excel文件是一项常见的任务,尤其在数据导出、报表生成或者数据分析场景下。下面我们将深入探讨如何在ASP.NET中实现这一功能。 首先,我们要了解的是,ASP.NET是一个用于构建Web应用程序的框架...

    asp.net+Ajax实现Excel文件导出

    本篇文章将详细讲解如何利用ASP.NET与Ajax技术实现在Web应用中导出Excel文件。 首先,ASP.NET是Microsoft开发的一个用于构建动态网站、Web应用程序和服务的框架。它基于.NET Framework,提供了丰富的服务器控件、...

    用ASP.NET读取读取EXCEL中的数据到WEB页面

    在ASP.NET中,读取Excel数据并将其展示在Web页面上是常见的需求,尤其是在数据分析、报表展示或数据导入等场景中。本项目提供了一种实现方法,包括完整的项目代码和说明,帮助开发者快速理解并应用到自己的项目中。 ...

    ASP.NET中上传并读取Excel文件数据示例

    在***中实现上传并读取Excel文件的数据是一个常见的需求,特别是在需要处理大量数据和进行数据分析的场景下。下面,我们将详细探讨如何在***环境下上传Excel文件,并读取文件中的数据,最后将数据显示在网页的...

    EXCEL讀取(ASP.NET)

    在本文中,我们将深入探讨如何在ASP.NET环境中利用OLEDB技术来读取Excel文件,无论是XLS格式还是XLSX格式,并将数据加载到DataTable对象中。这是一项基础但非常实用的技术,对于需要处理大量Excel数据的Web应用程序...

    asp.net 导出数据与图片到excel

    在标题“asp.net 导出数据与图片到excel”和描述中提到的,是关于如何在ASP.NET环境下将数据和图片导出到Excel文件的一个主题。这是一个常见的需求,尤其是在数据分析、报表生成或数据共享时。以下是一些相关的知识...

    【ASP.NET编程知识】asp.net生成Excel并导出下载五种实现方法.docx

    在ASP.NET编程中,生成Excel并导出下载是一项常见的需求,尤其在数据分析和报表生成时。以下是五种不同的实现方法: 1. **方法一:通过GridView** GridView控件是ASP.NET中用于显示数据的常用组件。这种方法适用于...

    读取EXCEL到ASP.NET

    在ASP.NET开发中,有时我们需要从Excel文件中读取数据并将其展示在网页上,例如在datagrid控件中。这个过程涉及到对Excel文件的操作和ASP.NET网页的交互。以下是一些关键知识点: 1. **Excel文件操作库**: ASP...

    asp.net读取Excel文件并显示

    在ASP.NET中,读取Excel文件并将其内容显示在GridView控件中是一项常见的任务,尤其在数据导入、导出或数据分析的应用中。本教程将详细解释如何实现这一过程。 首先,你需要安装`Microsoft.Office.Interop.Excel`库...

    使用asp.net读取并显示excel数据

    总结,ASP.NET中读取和显示Excel数据的过程包括:1) 创建一个ASP.NET页面让用户上传文件;2) 在服务器端处理文件上传事件,使用Interop库读取Excel数据;3) 将数据转换为适合显示的数据结构,如DataTable;4) 将数据...

    asp.net应用Excelpackage在服务端生成excel

    在ASP.NET开发中,我们经常需要将数据导出到Excel文件以便用户下载。在这个场景下,ExcelPackage库是一个非常实用的工具,它允许我们在服务端生成Excel文件,并且可以利用预先设计好的模板来快速填充数据,保持一致...

    asp.net 2.0读取Excel文件的Demo

    附件中包含一个asp.net 2.0读取Excel文件的Demo。流程:首先将客户端的excel文件上传到服务器端,然后返回excel文件的保存路径,最后读取服务器端的excel文件,并在gridview中显示。

    asp.net 将DataGrid数据写入Excel文件.rar

    在ASP.NET开发中,将DataGrid控件中的数据显示在Excel文件中是一项常见的需求,这主要应用于数据导出、报表生成或者数据分析场景。本教程将详细讲解如何实现这一功能。 首先,我们需要了解DataGrid控件。ASP.NET中...

    asp.net读取串口数据

    在ASP.NET中实现“读取串口数据”是一个相对复杂但实用的技术点,通常用于实现远程设备监控或者数据采集系统。串口通信(Serial Port Communication)是计算机与外部设备间的一种低速通信方式,常用于连接串行设备如...

    ASP.NET 导入、导出Excel (支持Office Excel 2003、 2007)

    "ASP.NET 导入、导出Excel (支持Office Excel 2003、2007)"是一个关键的话题,它涉及到如何在Web应用程序中实现对Excel文件的读取和写入,以满足数据交换和报表生成的需求。下面我们将详细探讨这个主题。 一、...

    asp.net使用npoi读取excel模板并导出下载详解

    在***中使用NPOI读取Excel模板并导出下载的详细过程涉及到多个知识点,包括对NPOI库的理解、Excel文件的读写操作、以及*** Web应用程序中的文件处理。下面将详细介绍这些内容。 ### 1. NPOI库简介 NPOI是一个开源的...

Global site tag (gtag.js) - Google Analytics