C#读写EXCEL(二) ZedGraph在Asp.net中的应用

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)

时间: 2024-11-23 11:09:05

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

C#读写EXCEL(二)

C#读写EXCEL(二) 2010-08-25 14:50:42| 分类: 默认分类 | 标签: |举报 |字号大 中 小 订阅 用微信 “扫一扫” 将文章分享到朋友圈. 用易信 “扫一扫” 将文章分享到朋友圈. 下载LOFTER客户端 private void button1_click(object sender, system.eventargs e) { if(openfiledialog1.showdialog() == dialogresult.ok) { oledbdataadap

MFC vs2012 Office2013 读写excel文件

近期在忙一个小项目(和同学一起搞的),在这里客户要求不但读写txt,而且可以读写excel文件,这里本以为很简单,结果...废话少说,过程如下: 笔者环境:win7 64+VS2012+Office2013+MFC. 说明:读写excel文件,通常包括1.ODBC数据库实现;2.通过解析Excel表格文件;3.通过OLE/COM的几种实现方法.本文主要研究通过OLE/COM实现对Excel表格的操作. 步骤: 1.新建MFC对话框.注意勾选自动化,否则后面加入不了需要的库,导致启动服务失败等错误

ASP.Net中使用Report Service

昨天研究以下Report Service,发现SQL Service自带的报表服务器也非常强大, 一,报表在不同的应用中表现形式 参考:http://www.cnitblog.com/yide/archive/2006/09/29/17485.html 二,在ASP.NET中使用的形式 1,  本地报表 a>     添加Microsoft.ReportViewer.WebForms引用 b>     新建一个xsd数据源,并查询好数据,如果不用xsd数据源也行,这样得后台绑定数据 c>

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

一.ASP.NET 母版页和内容页中的事件 母版页和内容页都可以包含控件的事件处理程序.对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件.控件事件不会从内容页发送到母版页.同样,也不能在内容页中处理来自母版页控件的事件. 在某些情况下,内容页和母版页中会引发相同的事件.例如,两者都引发 Init 和 Load 事件.引发事件的一般规则是初始化事件从最里面的控件向最外面的控件引发,所有其他事件则从最外面的控件向最里面的控件引发. 请记住,母版页

Python读写excel表格的方法二

目的:实现用python的另一种方法做excel的读取.新增操作. 环境:ubuntu 16.04  Python 3.5.2 情景:之前介绍了一种操作excel文件的方法(私链),现在使用另一种方法读写excel文件,一次性读出或写入,读写也很方便,读出为有序字典,像二维数组,需要用到3个第三方模块,pyexcel-io, pyexcel-xls, xlrd,主要导入pyexcel-xls和collections,pyexcel-xls基于xlrd和pyexcel-io,所以支持xls和xls

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

              本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章目录:http://www.cnblogs.com/asxinyu/p/4374032.html Spire.Office for .NET是E-iceblue开发的一种企业级.NET Office编辑的软件集合,包括Spire.Doc,Spire XLS,Spire.PDF,Spire.BarCo

[转]用Python读写Excel文件

转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交道,也频繁地使用Excel进行一些简单的数据处理和展示,但长期以来总是小心地避免用Python直接读写Excel文件.通常我都是把数据保存为以TAB分割的文本文件(TSV),再在Excel中进行导入或者直接复制粘贴. 前段时间做一个项目,却不得不使用Python直接生成Excel文件,后来随着需求的变化,还要对已有的Excel文件进行读取.在

R读写Excel文件中数据的方法

用R语言读写Excel的方法有很多,但每种方法都有让人头疼的地方,比如xlsx包的代码复杂,只支持Excel2007:RODBC不易理解,限制太多,程序不稳定,会出各种怪毛病.另存为csv格式的方法倒是比较通用比较稳定,但又存在操作麻烦,无法程序化处理多个文件的问题.提取xml也是个办法,但步骤太多代码太复杂,令人望而生畏.用剪贴板转换也不好,这同样需要人工参与,还不如存为csv. 相比之下,用gdata包来读取,配合WriteXLS写入Excel则可以很好的避开上述麻烦.这两个包都支持Exce

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

在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式:这个方式非常累人,微软的东西总是这么的复杂,使用起来可能非常不便,需要安装Excel,对于服务器,有时候还需要为配置IIS权限.折腾人,看到很多人在群里面使用这个东西,出现各种抓狂的错误: 2.开源.NET组件NPOI方式:这个方式应该是很多人都在使用的,这个开源的组件相比第一种,虽然稍微简单了点(2003支持比较好,新版本也支持Xlsx),但还是非常好用的:最近在浏览NP