ASP.net读取Excel数据到GridView中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.net读取Excel数据到GridView中相关的知识,希望对你有一定的参考价值。

ASP.net将Excel数据上传到服务器,并读取Excel数据到DataTabel,将数据放到GridView中,最好是Q上远程教我。。我Q625427840 教会 给200分

首先创建一个aspx文件,在页面中加入一个Button和一个DataGrid控件。
在工程的引用中添加Excel引用,并将测试的电子表格文件放到D盘中。
在CS文件中的Button1_Click事件中输入如下代码:
private void Button1_Click(object sender, System.EventArgs e)

string excelFilePath=@"D:\Book1.xls";//D:\Book1.xls为文件路径
Excel.Application myExcel=new Excel.ApplicationClass( ) ;
object oMissing = System.Reflection.Missing.Value ;
myExcel.Application.Workbooks.Open(excelFilePath,oMissing,oMissing,oMissing,oMissing,oMissing, oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing) ;
Excel.Workbook myBook = myExcel.Workbooks[1] ;
Excel.Worksheet mySheet = (Excel.Worksheet)myBook.Worksheets[1] ;
System.Data.DataTable dt=new System.Data.DataTable("mytable");
dt.Columns.Add("F1", System.Type.GetType("System.String"));
dt.Columns.Add("F2", System.Type.GetType("System.String"));
dt.Columns.Add("F3", System.Type.GetType("System.String"));
dt.Columns.Add("F4", System.Type.GetType("System.String"));
dt.Columns.Add("F5", System.Type.GetType("System.String"));
DataSet myDs = new DataSet();
myDs.Tables.Add(dt);
DataRow myRow;
myDs.Clear();
for( int i = 2 ; i <= 4 ; i ++ ) //第一行为标题,不读取

myRow = myDs.Tables["mytable"].NewRow();
for( int j = 1 ; j <= 5 ; j ++ )

Excel.Range r=(Excel.Range)mySheet.Cells[i,j];
string strValue=r.Text.ToString();
string aa=strValue;
string columnname="F"+j.ToString();
myRow[columnname]=strValue;

myDs.Tables["mytable"].Rows.Add(myRow);

DataGrid1.DataSource=myDs.Tables["mytable"].DefaultView;
DataGrid1.DataBind();
参考技术A 没有那么前面那么复杂

代码==========================
try

//生成连接Excel数据表格的字符串
string strOdbcCon = @"Provider=Microsoft.ACE.OLEDB.12.0; Persist Security Info=False;Data Source=Book1.xlsx; Extended Properties=Excel 8.0";
//定义OleDbConnection对象实例并连接Excel表格
OleDbConnection OleDB = new OleDbConnection(strOdbcCon);
//定义OleDbDataAdapter对象实例并调用Select查询语句提取Excel数据信息
OleDbDataAdapter OleDat = new OleDbDataAdapter("select * from [Sheet1$]", OleDB);
DataTable dt = new DataTable(); //定义DataTable对象实例
OleDat.Fill(dt); //调用Fill方法
//连接数据表格,显示数据
this.dataGridView1.DataSource = dt.DefaultView;

catch (Exception ey)

MessageBox.Show(ey.Message); //提示对话框
本回答被提问者采纳
参考技术B 你需要 先将 excel 转化为 sql的文件 这是第一步

然后你将数据库文件 读到数据库当中

然后再用 gridview 显示

当中第一步用 导入/导出向导将excel转化为sql即可

C#中gridview已经读取了Excel的数据,但是在主界面上未显示出来

在一个工程里面,有一个主界面,一旦运行这个程序,就生成了一个主界面,操作全部在主界面里。现在我在主界面上定义了一个按钮,只要点击这个按钮就可以把Excel的数据读取到gridview窗口中(这个窗口不在主界面上)。现在执行了程序,在主界面点击这个按钮,但是不能弹出单独的gridview窗口(与主界面相互独立),虽然已经将Excel数据读取到了gridview,但是操作过程始终显示主界面,不能弹出单独的gridview窗口(其中已包含读取的数据),请问用什么语句弹出单独的单独的gridview窗口(其中已包含读取的数据)?

2种方法:
1、使用链接,打开新窗口_blank;
2、使用window.open,打开链接地址;
打开的都是另外一个页面,显示gridview用的。
参考技术A BS结构 使用 javascript 控制,
window.open
在 这按钮的 onclientclick DOM事件中控制
参考技术B this.xxx.show() 参考技术C show
showdialog都不行么?

以上是关于ASP.net读取Excel数据到GridView中的主要内容,如果未能解决你的问题,请参考以下文章

asp.net如何输出数据?

C# ASP.NET怎么手动给GridView赋值,不从数据库中读取?

asp.net 2.0中GridView控件的怪怪问题

使用 ASP.NET 将 HTML 表导出到 Excel

ASP.NET C#中如何在excel中下载gridview,即如何在datatable中使用group by

asp.net中,如何实现将page页面各个空间的属性值,导出下载到一个word或excel中