博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vs.net2010 操作 Excel2003 与 Excel2007
阅读量:6573 次
发布时间:2019-06-24

本文共 2363 字,大约阅读时间需要 7 分钟。

读取 Excel 数据

 

using System.Data.OleDb;
using System.Data;
 
public 
void ReadExcelFiless()
        {
            
//
string strConn  = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Server.MapPath("ExcelFiles/MyExcelFile.xls") + ";Extended Properties=Excel 8.0";
//
此连接只能操作Excel2007 前的.xls 文件
            
//
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + Server.MapPath("ExcelFiles/MyExcelFile.xls") + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; 
//
此连接只能操作Excel2007之前(.xls)文件
            
string strConn = 
"
Provider=Microsoft.Ace.OleDb.12.0;
" + 
"
data source=
" + Server.MapPath(
"
ExcelFiles/Mydata2007.xlsx
") + 
"
;Extended Properties='Excel 12.0; HDR=NO; IMEX=1'
"
//
此连接可以操作.xls与.xlsx文件
            OleDbConnection conn = 
new OleDbConnection(strConn);
            OleDbDataAdapter adp = 
new OleDbDataAdapter(
"
Select * from [Sheet1$]
", conn);
            DataSet ds = 
new DataSet();
            adp.Fill(ds, 
"
Book1
");
            
this.GridView1.DataSource = ds.Tables[
"
Book1
"].DefaultView;
            
this.GridView1.DataBind(); 
        }

 操作Excel 2007 文件时,如出现

“未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序” 错误,则需

下载。然后安装就行了。

导出数据到 Excel

 

 

using System.IO;
protected 
void Button1_Click(
object sender, EventArgs e)
        {
            DisableControls(GridView1);
            Response.ClearContent();
            Response.AddHeader(
"
content-disposition
"
"
attachment; filename=MyExcelFile2011.xls
");
//
导出Excel200, Excel2003格式
            
//
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile2011.xlsx");
//
导出 Excel2007格式
            Response.ContentType = 
"
application/excel
";
            StringWriter sw = 
new StringWriter();
            HtmlTextWriter htw = 
new HtmlTextWriter(sw);
            
this.GridView1.RenderControl(htw);
            Response.Write(sw.ToString());
            Response.End(); 
        }
        
public 
override 
void VerifyRenderingInServerForm(Control control)
        {
        }
        
private 
void DisableControls(Control gv)
        {
            LinkButton lb = 
new LinkButton();
            Literal l = 
new Literal();
            
string name = String.Empty;
            
for (
int i = 
0; i < gv.Controls.Count; i++)
            {
                
if (gv.Controls[i].GetType() == 
typeof(LinkButton))
                {
                    l.Text = (gv.Controls[i] 
as LinkButton).Text;
                    gv.Controls.Remove(gv.Controls[i]);
                    gv.Controls.AddAt(i, l);
                }
                
else 
if (gv.Controls[i].GetType() == 
typeof(DropDownList))
                {
                    l.Text = (gv.Controls[i] 
as DropDownList).SelectedItem.Text;
                    gv.Controls.Remove(gv.Controls[i]);
                    gv.Controls.AddAt(i, l);
                }
                
if (gv.Controls[i].HasControls())
                {
                    DisableControls(gv.Controls[i]);
                }
            }
        }

 

 

 

转载于:https://www.cnblogs.com/tiger8000/archive/2011/10/08/2201743.html

你可能感兴趣的文章
componentDidUpdate vs componentWillReceiveProps
查看>>
Ajax到底是什么?
查看>>
Vue.js实现可配置的登录表单
查看>>
浅拷贝和深拷贝
查看>>
我的2018春招实习+秋招总结【前端开发】
查看>>
社区活动 | Apache Flink 1.9 版本即将发布,新版本有哪些新特性?
查看>>
JSCore的基本使用
查看>>
MySQL索引原理及慢查询优化,了解一下?
查看>>
Android进阶:框架打造之IOC框架
查看>>
Android:使用 Intent 连接多个活动
查看>>
git merge;fork同步集中库代码;a标签返回
查看>>
CommonLibrary——框架通用工具库
查看>>
浅谈vue —— 生命周期
查看>>
小程序开发入门教程 一
查看>>
前后端交互总结2:使用PHP进行表单数据上传与更新
查看>>
Python抖音机器人制作!让你有看不完的小姐姐
查看>>
分布式系统面试连环炮
查看>>
js中的内置对象(详细篇)
查看>>
Flutter仿美团应用开发笔记-入门篇
查看>>
你写的java代码是怎么在操作系统底层执行的?看完这篇你就知道了
查看>>