C#读写EXCEL(二)  -- ::|  分类: 默认分类 |  标签: |举报 |字号大
中
小 订阅 用微信 “扫一扫” 将文章分享到朋友圈。 用易信 “扫一扫” 将文章分享到朋友圈。 下载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[]; 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[];
//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[,];
Console.WriteLine(rng2.Value2);
//写入数据
Excel.Range rng3=xSheet.get_Range("C6",Missing.Value);
rng3.Value2="Hello";
rng3.Interior.ColorIndex=; //设置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(":")<) 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[];//取得sheet1
//写入字段
for(int i=;i<ds.Tables[].Columns.Count;i++)
{
worksheet.Cells[,i+]=ds.Tables[].Columns[i].ColumnName;
}
//写入数值 for(int r=;r<ds.Tables[].Rows.Count;r++)
{
for(int i=;i<ds.Tables[].Columns.Count;i++)
{
worksheet.Cells[r+,i+]=ds.Tables[].Rows[r][i];
}
System.Windows.Forms.Application.DoEvents();
}
worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。
if(cmbxType.Text!="Notification")
{
Excel.Range rg=worksheet.get_Range(worksheet.Cells[,],worksheet.Cells[ds.Tables[].Rows.Count+,]);
rg.NumberFormat="";
}
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[]; int rowsCount = sheet.Rows; for (int row = ; row < rowsCount; row++) { string sheet.getCell(, row).Contents; decimal TotalPrice = Convert.ToDecimal(sheet.getCell(, row).Value); } 评论这张 转发至微博 转发至微博 阅读()| 评论() |
用微信 “扫一扫” 将文章分享到朋友圈。 用易信 “扫一扫” 将文章分享到朋友圈。 喜欢 推荐 0人 |

C#读写EXCEL(二)的更多相关文章

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

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

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

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

  3. 使用NPOI读写Excel、Word

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

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

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

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

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

  6. [转]用Python读写Excel文件

    [转]用Python读写Excel文件   转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交 ...

  7. python使用xlrd模块读写Excel文件的方法

    本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...

  8. python 读写 Excel文件

    最近用python处理一个小项目,其中涉及到对excel的读写操作,通过查资料及实践做了一下总结,以便以后用. python读写excel文件要用到两个库:xlrd和xlwt,首先下载安装这两个库. ...

  9. C++读写EXCEL文件OLE,java读写excel文件POI 对比

    C++读写EXCEL文件方式比较 有些朋友问代码的问题,将OLE读写的代码分享在这个地方,大家请自己看.http://www.cnblogs.com/destim/p/5476915.html C++ ...

随机推荐

  1. day5-shelve模块

    一.概述 前面章节我们讲述了json和pickle模块的序列化和反序列化处理,他们有一个不足是在python 3中不能多次dump和load,shelve模块则可以规避这个问题.shelve模块是一个 ...

  2. 21-THREE.JS 将法线矢量映射到RGB颜色的材质

    <!DOCTYPE html> <html> <head> <title></title> <script src="htt ...

  3. MMU实验实验

    SRAM比较贵,访问方便,发出地址就可以, SDRAM比较便宜 2440的启动方式: 1 .NOR启动   0地址指向NOR(BANK0) 2 .NANA启动 0地址指向片内的SRAM(steppin ...

  4. Java基础摘要(一)

    三大特性 封装 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.封装是面向对象的特征之一,是对象和类概念的主要特性.简单的说,一 ...

  5. tomcat映射物理路径

    <Context path="/woyoubaoweb/upload" docBase="/opt/file/image/woyoubaoweb/upload&qu ...

  6. 关于Object类的equals方法和hashCode方法

    关于Object类的equals的特点,对于非空引用: 1.自反性:x.equals(x) return true : 2.对称性:x.equals(y)为true,那么y.equals(x)也为tr ...

  7. SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)

    版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://blog.csdn.net/forezp. http://blog.csdn.net/forezp/art ...

  8. Flask 的整体流程

    Flask 的整体流程 封装 requestContext 对象, full_dispatch_request(视图函数 执行), response返回 从app.run() 开始 -->> ...

  9. Juint 单元测试(1)

    Junit 是一个基于Java语言的回归单元测试框架.是白盒测试的一种技术,记住这些就可以了. 为项目添加Junit 1 右键项目名称选择“Properties”,在弹出的窗体中选择“Java Bui ...

  10. Delphi XE4 Upate1 更新升级记录.

    一直没时间,这两天折腾了一下 升级了.  其实也可能修了老bug 引入新bug. 呵呵. 看看Emb 都修了什么吧.  我干脆是重新安装的. 虽然官方也有一个单独的update.exe.  从这些bu ...