工作表(XLSheet)对象对外公开了Rows和Columns两个集合属性用以操纵工作表上的每一行或者每一列,XLRow和 XLColumn代表了工作表上面的行,列对象,可以设定行高或者列宽,是否可见以及样式等等。如果你没有设定任何值,XLRow和XLColumn会返回工作表的默认值(参见DefaultRowHeight和DefaultColumnWidth属性)。
XLRow和XLColumn 对象的默认纬度为1,这是工作表的默认设置。
单元格
在工作表(XLSheet)对象上可以直接通行,列索引操作工作表上的每一个单元格。XLCell代表了每一个单元格对象,可以给单元格赋值或者设定样式。
与Rows集合和Columns集合一样,通过单元格索引访问一样可以自动扩展工作表。
Visual Basic
Visual Basic |
Dim cell As XLCell = sheet(10, 10) |
C#
C# | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="fb31ebfb-e45b-4c50-8e54-91aca929ec72"><ac:plain-text-body><![CDATA[ | XLCell cell = sheet[10,10]; | ]]></ac:plain-text-body></ac:structured-macro> |
如果工作表少于11行或者11列,Rows或者Columns将会被自动扩充,索引为[10,10]的单元格会被返回。
由于工作表可以自动扩充,通过索引检索单元格将永远不会返回空引用(null 对象)。如果你想检查特定索引位置的单元格是否存在的时候,你可以使用工作表(XLSheet)对象的GetCell方法来进行访问,如果返回空引用则不存在。
XLCell对象上的Value属性包含了单元格的内容,这个属性的类型是object,通常可能是字符串,数字,布尔,日期类型或者空值,其它类型的值不能被保存到Excel文件中。
XLCell对象上的Style属性包含了单元格的样式,定义了单元格的外观。如果该属性被设置为null,单元格会使用工作表的默认样式。通过XLStyle对象可以设定单元格的字体,颜色,对齐方式以及格式等等。
样式
XLStyle类型定义了工作表上行,列以及单元格的外观样式,XLStyle对象包含了很多特定的属性来设定样式,例如字体,对齐方式,颜色,格式等等。需要注意的是并不是XLStyle对象上面的每一个属性都需要设定,如果你只设定了该对象上的某一个属性,单元格在绘制的时候会应用这个属性,而其他的设置会使用工作表的默认设置。
Excel for .NET 常见问题下面是Excelfor.NET用户遇到的一些常见问题:
Excelfor.NET是否支持计算公式和单元格命名区域?
Excelfor.NET同时支持计算公式和单元格命名区域。ComponentOneStudios的2009 v2版本已经完全支持添加单元格计算公式,参见下面的例子:
C#
C# | |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="ac463e41-ac29-4ff3-bfde-d88884f85ac7"><ac:plain-text-body><![CDATA[ | private void Form1_Load(object sender, EventArgs e) { C1.C1Excel.XLSheet sheet = c1XLBook1.Sheets[0]; sheet[4, 1].Value = "apples and oranges"; sheet[5, 1].Value = "apples an"; // <-- result of the formula sheet[5, 1].Formula = "LEFT(B5,9)"; c1XLBook1.Save(@"c:\mybook.xls"); System.Diagnostics.Process.Start(@"c:\mybook.xls"); |
运行程序结果如下:
设置的计算公式先会从 B5 单元格中获取数据,然后从该字符串的左边开始计数,取9个字符,就是"apples an"。
Excelfor.NET可以在ASP.NET2.0的页面上使用吗?
是的,Excelfor.NET完全支持ASP.NET2.0,如果你需要在一个 aspx页面上显示Excel for .NET控件的话,可以打开组件设计器的页面,拖拽一个C1XLBook 控件到你的Web页面上就可以了。