您的位置:首页 > 编程语言 > ASP

ASP.NET - 读写Excel - MyXls - 三方控件使用说明

2013-01-22 17:11 731 查看
第三方工具下载:http://myxls.in2bits.org/WIKI/Downloads.ashx

1、服务器端可以不用安装 Excel。

2、网上很多资料都只有设值,没有取值,这里我自己整理了一些对这套控件的使用经验。

3、如果只是 写入 而不取值 则很好操作。

一、

这个第三方的控件在有的时候是不支持断点调试的,否则会出错:【没有可用于当前位置的源代码】

二、

如果要取值,则需要将没用到的单元格用空字符串初始化,否则的话在内部逻辑里面就会自动缩进。 如:你设置了 (1,1) 和 (1,3),取值就只能取 (1,1) 和 (1,2)

============================================================

org.in2bits.MyXls.XlsDocument xls = new org.in2bits.MyXls.XlsDocument();

xls.FileName = "MyXLS Hello World.xls"; // 必须设置一个文件名

//添加工作表,并设置名称

org.in2bits.MyXls.Worksheet sheet = xls.Workbook.Worksheets.AddNamed("Hello, World!");

//获取单元格对象

org.in2bits.MyXls.Cells cells = sheet.Cells;

cells.Add(1, 1, "Hello");// 设值

cells.Add(1, 3, "World");// 设值

//获取行对象。

org.in2bits.MyXls.Rows rows = sheet.Rows;

// 取第一行,下标从1开始,而不是0

org.in2bits.MyXls.Row row = rows[ushort.Parse("1")">;

  //下标从1开始,而不是0

org.in2bits.MyXls.Cell cell = row.GetCell(ushort.Parse("2"));

// 如果为null 则初始化为空字符串,否则ToString() 会出错。

object obj = cell.Value == null ? "" : cell.Value;

  //xls.Save(@"d:\");// 保存到某个路径下

xls.Send(); // 发送到客户端

//Response.Write(int.Parse(obj.ToString()));

===========================================================

三、

合并 :

cells.Add(2, 1, "测试");

cells.Merge(2,2,1,3);

参数类型:(最小行,最大行,最小列,最大列)

这里和我们平时概念不一样(起始横坐标,起始纵坐标,结束横坐标,结束纵坐标)。

合并之后,算一个单元格,打出的样式是占的格子是正常的,

但是如果要取值而言,它只能代表一格。

设置 cells.Merge(2,2,1,3); 之后,

取 cells.Add(2, 4, "test"); 就得值得取 (2,2)而不是(2,4)。

【在“二”和“三”中提到的自动缩进的问题,解决方案就是初始化没使用到的单元格】

cells.Add(2, 1, "测试");

cells.Add(2, 2, "");

cells.Add(2, 3, "");

cells.Merge(2,2,1,3);

设置 cells.Merge(2,2,1,3); 之后,

取 cells.Add(2, 4, "test"); 就取 (2,4)而不是(2,2)。

所有呀,如果能在数据库端解决取值统计的问题就尽量在数据库端操作

最好少在Excel里面取值。

四、

样式:

org.in2bits.MyXls.XF xf = xls.NewXF();// 格式对象

xf.Font.Bold = true;//粗体

xf.HorizontalAlignment = org.in2bits.MyXls.HorizontalAlignments.Centered;//左右居中

xf.VerticalAlignment = org.in2bits.MyXls.VerticalAlignments.Centered;//上线居中

xf.BottomLineStyle = ushort.Parse("2");//下边线粗

xf.BottomLineColor = org.in2bits.MyXls.Colors.Default0C;//下边线颜色

xf.Font.Height = 400;//自体高度,也是大小

cells.Add(2, 4, "测试文本", xf);// 设值

也可以这样用:

org.in2bits.MyXls.Cell cell = cells.Add(2, 4, "测试文本", xf);

cell.Font.Bold = true;

cell.HorizontalAlignment = org.in2bits.MyXls.HorizontalAlignments.Centered;

cell.VerticalAlignment = org.in2bits.MyXls.VerticalAlignments.Centered;

cell.BottomLineStyle = ushort.Parse("2");

cell.BottomLineColor = org.in2bits.MyXls.Colors.Default0C;

支持的设置比较单一,也相对简单。

=============================================================

对 Excel.dll 的使用少用,服务器端必须装Excel,对于往客户端下载的支持和安全性很麻烦,官方也不建议这样使用:

http://support.microsoft.com/kb/257757/en-us 中这样说道:

Microsoft does not currently recommend, and does not support, Automation of Microsoft Office applications from any unattended, non-interactive client application or component (including ASP, ASP.NET, DCOM, and NT Services), because Office may exhibit unstable behavior and/or deadlock when Office is run in this environment.

=============================================

官方提倡 Office XML :

http://support.microsoft.com/kb/931866/

客户端要求

Microsoft Visual Studio 2005 或 Microsoft Visual C# 2005

.NET 框架 3.0

为.net 框架的 visual Studio 2005 扩展 3.0

Excel 2007 或 Word 2007

上面这种模式 好像可以不用在服务器端 安装 Excel ,具体我还没去尝试。

但是客户端就必须安装 Excel 2007 或 Word 2007

我在网上找了一些资料,在 VS2005 + .net 2.0 的基础之上升级到 VS2005 + .net3.0 失败了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  读写Excel - MyXls 三方