Excel

---》列是有限的

--》数据靠在单元格右边是数字类型,左边是字符串类型 把一个数字当初字符串来显示 在前面加个 '

-->用程序操作Excel

可以使用Excel的所有功能,优点:很强大,但是不好的地方必须要安装Excel

用NPOI只能操作03的ofice文档不能操作07的新版本

--》NPOI操作Excel     先添加命名空间  HSSF.UserModel

单元格都是有格式的,在读取的时候要知道每一个单元格的值的类型,读取前判断一下

1)在内存中创建EXCLE

HSSFWorkbook  workbook=new HSSFWorkbook ();

创建一个表sheet

HSSFSheet sheet=nworkbool.CreateSheet(“表名”);

创建行

HSSFRow row=sheet.CreateRow(0);

创建cell单元格

HSSFCell cell=row.CreateCell(0,HSSFCell.CELL_...);可以设置但与那个的类型格式

cell.SetCellValue(“值”);

现在EXEL创建好了但是是内存里的,所以我们要保存

using(FileStream fs=new FileStream("保存路径",FileMode.Create))

{

workbook.Write(fs);

}

一、要使用excel.dll文件,先得把它从excel中提取出来。对于excel2000以下版本,找到Excel9.olb文件然后在命令行输入:Tlbimp Excel9.olb Excel.dll,就可以将Excel.dll从excel2000里面提取出来。对于excel2003使用Tlbimp命令,把Excel9.olb换成Excel.exe,从excel.exe文件里面就可以直接提取excel.dll文件。当然,所有的前提是你的电脑上必须安装了Microsoft Visual Studio和excel。

提出dll文件后,请将它放到你项目的/bin目录下去。然后再要使用的地方引入。

其实,Tlbimp命令是vs自带的一个工具,位于Microsoft Visual Studio 8/SDK/v2.0/Bin下,我没试过用它能不能把其他exe文件里面的东西提取成dll文件,但是原理上因该是可以的。昨天看了关于内存的一点文章,大概这个命令就是寻找exe文件里面这些方法的地址然后把它做成dll文件吧。这一方面将来再研究。本文主要是对excel.dll中的一些方法罗列出来,便于我自己和大家使用。

废话不多说了。

二、excel.dll中的方法汇总(不断添加中)

类、方法名(参数)、变量名

注释

Excel.Application

进程应用。在所有操作之前,必须在进程中中创建excel的饮用。然后才能开始所有对dll文件中方法的调用。

例:Excel.Application excel = new Excel.Application();

excel.Application.Workbooks

Excel文件中的一张sheet工作簿

Workbooks.Add(object Template)

增加一张工作工作簿。Template我给了个true

Workbooks.Close()

关闭一张工作工作簿。

Workbooks.Count

获取工作簿的数量

Workbooks.get_Item(object index)

获取工作簿对象,参数为工作簿的索引值。

Workbooks.Parent

获取工作簿的父对象。

excel.Cells

获取单元格对象集合。

excel.Cells[int Row, intColumn]

获取或设置指定的单元格对象

Cells.RowHeight

获取或设置单元格的高度

Cells.Borders.LineStyle

获取或设置单元格的边界线的样式。后面的数字为int型,数字好像是0到12之间,和在excel里面操作里面选择线的样式有对应,只是那个顺序稍微有点出入。

Cells.Borders.Color

获取或者设置单元格边界线的颜色。颜色不是正常的六位十六进制数字,而是微软自行规定的整形数字。具体换算还有待研究。

Columns.ColumnWidth

获取或设置列宽

Range

单元格对象类,例如:Range range=(Range)excel.Cells[4, 1];语句可以将单元格对象作为一个实例化进行操作。

range.Borders.get_Item(

XlBordersIndex index)

获取单元格某一个边的边界对象。注意:里面的参数是一个边界对象类。参数示例:

Excel.XlBordersIndex.xlEdgeRight:单元格右边界

同理,你可以去XlBordersIndex后面点出来左边界、上边界、下边界。

示例:

range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeRight).LineStyle = 2;//设置此单元格的右边界为虚线。

range.Borders.get_Item(Excel.XlBordersIndex.xlDiagonalDown).LineStyle=2;//在单元格里面划一道左高右低的线。

好玩吧?嘿嘿!还有更多的……

下面的例子还有更多的方法,自己看吧:

Range rd = excel.get_Range(excel.Cells[5, 1], excel.Cells[5, 2]);

//本句将两个分开的单元格作为一个单元。。

rd.Activate();                                                   //将其激活。

rd.Merge(0);                                                     //合并单元格。里面的参数0似乎没有什么意义。

rd.NoteText( "写入一段文字",3,10);                               //单元格标注。

rd.Value2 = "这是写入单元格的内容";                              //在单元格内写入内容。注意:text属性只能读,写不进去。所以得用这个属性。

rd.VerticalAlignment = 2;                                        //设置文本的垂直对齐方式为居中。本属性允许的value类型为int32。

rd.Orientation = 60;                                             //把文字按照逆时钟方向旋转一定角度。

rd.RowHeight = 100;//设置行高

rd.WrapText = 3;                                                 //换行

rd.HorizontalAlignment = 3;                                        //设置文本的水平对齐方式为居中。本属性允许的value类型为int32。

rd.Font.Size = 10;//设置字的大小。

DouNet学习_Excel导入导出的更多相关文章

  1. MongoDB学习(三)数据导入导出及备份恢复

    这几天想着公司要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下 ...

  2. Mysql --学习:大量数据快速导入导出

    声明:此文供学习使用,原文:https://blog.csdn.net/xiaobaismiley/article/details/41015783 [实验背景] 项目中需要对数据库中一张表进行重新设 ...

  3. 学习 MySQL中导入 导出CSV

    学习 MySQL中导入 导出CSV http://blog.csdn.net/sara_yhl/article/details/6850107    速度是很快的 导出 select * from t ...

  4. 巨杉学习笔记 | SequoiaDB MySQL导入导出工具使用实战

    本文来自社区用户投稿,感谢这位小伙伴的技术分享 巨杉数据库架构简介 巨杉数据库作为分布式数据库是计算和存储分离架构,由数据库实例层和存储引擎层组成的.存储引擎层负责数据库核心功能比如数据读写存储以及分 ...

  5. Docker 学习之镜像导入导出及推送阿里云服务器(三)

    在前面两节里主要就是记录一些docker的基本的操作,包括搜索镜像,拉取镜像,根据镜像创建容器等等,在这一节主要就是记录Docker对于镜像文件的导入导出,及推送到阿里云再从阿里云获取镜像. 一.镜像 ...

  6. 【Java EE 学习 30】【闪回】【导入导出】【管理用户安全】【分布式数据库】【数据字典】【方案】

    一.闪回 1.可能的误操作 (1)错误的删除了记录 (2)错误的删除了表 (3)查询历史记录 (4)撤销已经提交了的事务. 2.对应着以上四种类型的误操作,有四种闪回类型 (1)闪回表:将表回退到过去 ...

  7. DLL学习笔记一(DLL导入导出)

    创建DLL: 先声明导出函数:使用__declspec(dllexport) #include"DLLSample.h" #ifndef _DLL_SAMPLE_H #define ...

  8. DB2导入导出 学习笔记

    db2pd -osinfodb2mtrk -i -d (for aix)db2 get dbm cfg show detaildb2 get db cfg show detaildb2 get sna ...

  9. 数据库Mysql的学习(八)-储存过程和事务和导入导出

    储存过程 DELIMITER // CREATE PROCEDURE pro1() BEGIN SELECT book_id,book_name,category FROM bookinfo t1 J ...

随机推荐

  1. SSIS ->> Logging

    SSIS提供了Event Handler之外的另一种方法捕捉Event和获取需要的信息,这种方法是Logging.SSIS的Logging针对不同的组件可以提供比Event Handler更多的Eve ...

  2. 感知机(python实现)

    感知机(perceptron)是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别(取+1和-1).感知机对应于输入空间中将实例划分为两类的分离超平面.感知机旨在求出该超平面,为求得超平面导 ...

  3. [转]C:int型指针

    开源中国:http://my.oschina.net/lotte1699/blog/142538 网页快照:http://www.piaocafe.com/295977937/139381567037 ...

  4. Android NDK 和 OpenCV 整合开发总结(3)

    Android NDK 和 OpenCV 整合开发总结(3) http://hujiaweibujidao.github.io/blog/2013/11/18/android-ndk-and-open ...

  5. c# 串行【序列化】和解串【反序列化】

    C#   串行[序列化]和解串[反序列化] 一. 什么是序列化和反序列话呢? 相信我们做程序的都会遇到这种情况,需要将C#中某一个结构很复杂的类的对象存储起来,或者通过网路传输到远程的客户端程序中去, ...

  6. 《Linux/Unix系统编程手册》读书笔记5

    <Linux/Unix系统编程手册>读书笔记 目录 第8章 本章讲了用户和组,还有记录用户的密码文件/etc/passwd,shadow密码文件/etc/shadow还有组文件/etc/g ...

  7. [HDOJ1078]FatMouse and Cheese(记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意:给出n, k,然后给出n*n的地图,(下标0~n-1),有一只老鼠从(0,0)处出发,只能 ...

  8. linux软件的安装,更新与卸载

    Linux常见的安装为tar,zip,gz,rpm,deb,bin等.我们可以简单的分为三类. 第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文件: 第二:对应的有管理 ...

  9. IBatis.Net 批量插入数据

    利用了iterate标签来做的: 先看iterate标签几个属性的: prepend-加在open指定的符号之前的符号,添加在语句的前面(可选) property-类型为ArrayList的用于遍历的 ...

  10. Unable to locate package update

    碰到这个问题后找到这个帖子就转了过来 当用apt-get更新软件包时常出现错误提示Unable to locate package update, 尤其是在ubuntu server上,解决方法是: ...