C#读写EXCEL(二)

2010-08-25 14:50:42|  分类: 默认分类 |  标签: |举报 |字号大中小 订阅

用微信  “扫一扫”

将文章分享到朋友圈。

用易信  “扫一扫”

将文章分享到朋友圈。

下载LOFTER客户端

 
 

private void button1_click(object sender, system.eventargs e) { if(openfiledialog1.showdialog() == dialogresult.ok) { oledbdataadapter ada = new oledbdataadapter("select * from [sheet1$]", "provider=microsoft.jet.oledb.4.0;data source=" + openfiledialog1.filename + ";extended properties=excel 8.0;"); datatable dt = new datatable(); try { ada.fill(dt); } catch(exception ex)
{ messagebox.show(ex.tostring()); } datagrid1.datasource = dt;
} }

sqlconnection conn = new sqlconnection("data source=(local);database=northwind;user id =sa;pwd=york"); string strsql = @"select * from openrowset(microsoft.jet.oledb.4.0 ,excel 5.0;hdr=yes;database=e:\book1.xls,a$)"; sqldataadapter da = new sqldataadapter(strsql, conn); dataset ds = new dataset(); da.fill(ds);
customergrid.datasource = ds.tables[0];

using System; using System.Reflection; // 引用这个才能使用Missing字段 using Excel;

namespace CExcel1 { class Class1 {
[STAThread] static void Main(string[] args) { //创建Application对象
Excel.Application xApp=new Excel.ApplicationClass(); xApp.Visible=true;
//得到WorkBook对象, 可以用两种方式之一: 下面的是打开已有的文件 Excel.Workbook xBook=xApp.Workbooks._Open(@"D:\Sample.xls",
Missing.Value,Missing.Value,Missing.Value,Missing.Value
,Missing.Value,Missing.Value,Missing.Value,Missing.Value
,Missing.Value,Missing.Value,Missing.Value,Missing.Value);         

      //xBook=xApp.Workbooks.Add(Missing.Value);//新建文件的代码
//指定要操作的Sheet,两种方式: Excel.Worksheet xSheet=(Excel.Worksheet)xBook.Sheets[1]; //Excel.Worksheet xSheet=(Excel.Worksheet)xApp.ActiveSheet; //读取数据,通过Range对象 Excel.Range rng1=xSheet.get_Range("A1",Type.Missing); Console.WriteLine(rng1.Value2);
//读取,通过Range对象,但使用不同的接口得到Range Excel.Range rng2=(Excel.Range)xSheet.Cells[3,1]; Console.WriteLine(rng2.Value2);
//写入数据 Excel.Range rng3=xSheet.get_Range("C6",Missing.Value);
rng3.Value2="Hello"; rng3.Interior.ColorIndex=6; //设置Range的背景色
//保存方式一:保存WorkBook xBook.SaveAs(@"D:\CData.xls",
Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,
Excel.XlSaveAsAccessMode.xlNoChange,Missing.Value,Missing.Value,Missing.Value,
Missing.Value,Missing.Value); //保存方式二:保存WorkSheet
xSheet.SaveAs(@"D:\CData2.xls",
Missing.Value,Missing.Value,Missing.Value,Missing.Value,
Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
//保存方式三 xBook.Save(); xSheet=null; xBook=null; xApp.Quit(); //这一句是非常重要的,否则Excel对象不能从内存中退出 xApp=null; } } }

//导出Excel的方法    private void ExportExcel()    {     DataSet ds=dtsSelect;//数据源     if(ds==null) return;

string saveFileName="";     bool fileSaved=false;     SaveFileDialog saveDialog=new SaveFileDialog();     saveDialog.DefaultExt ="xls";     saveDialog.Filter="Excel文件|*.xls";     saveDialog.FileName ="Sheet1";     saveDialog.ShowDialog();     saveFileName=saveDialog.FileName;     if(saveFileName.IndexOf(":")<0) return; //被点了取消

Excel.Application xlApp=new Excel.Application();

if(xlApp==null)     {      MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");      return;     }

Excel.Workbooks workbooks=xlApp.Workbooks;
    Excel.Workbook workbook=workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);     Excel.Worksheet worksheet=(Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
    //写入字段     for(int i=0;i<ds.Tables[0].Columns.Count;i++)     {
     worksheet.Cells[1,i+1]=ds.Tables[0].Columns[i].ColumnName;     }
    //写入数值         for(int r=0;r<ds.Tables[0].Rows.Count;r++)     {      for(int i=0;i<ds.Tables[0].Columns.Count;i++)      {       worksheet.Cells[r+2,i+1]=ds.Tables[0].Rows[r][i];      }      System.Windows.Forms.Application.DoEvents();     }     worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。     if(cmbxType.Text!="Notification")     {      Excel.Range rg=worksheet.get_Range(worksheet.Cells[2,2],worksheet.Cells[ds.Tables[0].Rows.Count+1,2]);      rg.NumberFormat="00000000";     }     if(saveFileName!="")     {
     try      {       workbook.Saved =true;       workbook.SaveCopyAs(saveFileName);       fileSaved=true;      }      catch(Exception ex)      {       fileSaved=false;       MessageBox.Show("导出文件时出错,文件可能正被打开!\n"+ex.Message);      }     }     else     {      fileSaved=false;     }     xlApp.Quit();     GC.Collect();//强行销毁     if(fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //打开EXCEL    }

在项目中经常遇到读写EXCEL文件的需求。其实读取EXCEL很简单, 首先使用命名空间NExcel,然后加载文件到Workbook,循环读取就行了。

using NExcel;

Workbook wb = Workbook.getWorkbook(fileStream);

Sheet sheet = wb.Sheets[0];

int rowsCount = sheet.Rows;

for (int row = 2; row < rowsCount; row++)

{

string sheet.getCell(0, row).Contents;

decimal TotalPrice = Convert.ToDecimal(sheet.getCell(1, row).Value);

}

 
 
 
 
  评论这张
转发至微博
 
转发至微博
阅读(954)| 评论(0)

C#读写EXCEL(二) ZedGraph在Asp.net中的应用的更多相关文章

  1. C#读写EXCEL(二)

    C#读写EXCEL(二) -- ::| 分类: 默认分类 | 标签: |举报 |字号大 中 小 订阅 用微信 “扫一扫” 将文章分享到朋友圈. 用易信 “扫一扫” 将文章分享到朋友圈. 下载LOFTE ...

  2. Python读写Excel文件的实例

    最近由于经常要用到Excel,需要根据Excel表格中的内容对一些apk进行处理,手动处理很麻烦,于是决定写脚本来处理.首先贴出网上找来的读写Excel的脚本. 1.读取Excel(需要安装xlrd) ...

  3. MFC vs2012 Office2013 读写excel文件

    近期在忙一个小项目(和同学一起搞的),在这里客户要求不但读写txt,而且可以读写excel文件,这里本以为很简单,结果...废话少说,过程如下: 笔者环境:win7 64+VS2012+Office2 ...

  4. 关于asp.net中页面事件加载的先后顺序

    一.ASP.NET 母版页和内容页中的事件 母版页和内容页都可以包含控件的事件处理程序.对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件.控件事件 ...

  5. ASP.Net中使用Report Service

    昨天研究以下Report Service,发现SQL Service自带的报表服务器也非常强大, 一,报表在不同的应用中表现形式 参考:http://www.cnitblog.com/yide/arc ...

  6. 用Python读写Excel文件(转)

    原文:google.com/ncr 虽然天天跟数据打交道,也频繁地使用Excel进行一些简单的数据处理和展示,但长期以来总是小心地避免用Python直接读写Excel文件.通常我都是把数据保存为以TA ...

  7. 使用NPOI读写Excel、Word

    NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...

  8. 【原创】.NET读写Excel工具Spire.Xls使用(1)入门介绍

    在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式:这个方式非常累人,微软的东西总是这么的复杂,使用起来可能非常不便,需要安装E ...

  9. 【原创】.NET读写Excel工具Spire.Xls使用(4)对数据操作与控制

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

随机推荐

  1. SQL Server中的联合主键、聚集索引、非聚集索引

    我们都知道在一个表中当需要2列以上才能确定记录的唯一性的时候,就需要用到联合主键,当建立联合主键以后,在查询数据的时候性能就会有很大的提升,不过并不是对联合主键的任何列单独查询的时候性能都会提升,但我 ...

  2. shell编程实例1

    1.vim hello.sh 2. #!bin/bash echo "hello world!" 3.chmod +x  hello.sh 4.source hello.sh ls ...

  3. vim 插件使用

    a.vim的安装相当简单,下载a.vim后丢进Vim插件目录(一般为~/.vim/plugin),必要时再重启一下Vim就可以使用了. 头/源文件切换命令 :A 头文件/源文件切换 :AS 分割窗后并 ...

  4. CentOS修改系统的默认启动模式为命令号界面

    CentOS在安装桌面之后,将图形界面设置为默认模式,给PC内存带来较大压力,所以希望修改系统的默认启动模式为命令号界面,而不启动图形界面.方法如下: 1.以 root用户登录系统:或者 用su切换到 ...

  5. OSPF 配置

    封装在IP层:协议号 89 hello时间是dead时间的1/4 224.0.0.5 .在点到点网络, 比如T1线路,是连接单独的一对路由器的网络, 点到点网络上的有效邻居总是可以形成邻接关系的,在这 ...

  6. 演示使用Metasploit入侵Windows

    我使用Kali Linux的IP地址是192.168.0.112:在同一局域网内有一台运行Windows XP(192.168.0.108)的测试电脑. 本文演示怎么使用Metasploit入侵win ...

  7. ORM 图书管理系统

    models.py(模型) from django.db import models # Create your models here. # 书 出版社 作者 作者详情表 # 书 class Boo ...

  8. remoting与socket、web service的比较及实例

    remoting基础 一种分布式处理方式,可以说是DCOM的一种升级 跨过应用程序域,与另外的应用程序域进行通信,即穿越边界 在remoting中是通过通道(channel)来实现两个应用程序域之间对 ...

  9. zju 校队选拔 被虐记

    选拔已经开始了三天才想起来写游记 QAQ.. 7.12 弱弱的Sky_miner来到了ZJU,过程中被热成狗... 然后见到了无数大二大三的大佬们,过程中被热成狗... 后来听靖哥哥说集训的注意事项, ...

  10. FastAdmin 社区 FAQ 帖子收集(F4NNIU 版 2018-08-12)

    FastAdmin 社区 FAQ 帖子收集 为什么Selectpage下拉列表在编辑时总是返回第一行的值? https://forum.fastadmin.net/thread/2399 根据条件值判 ...