在aspose中select范围
你知道一个相当于VBA代码:
Range(Selection, Selection.End(xlToRight)).Select
在Aspose.Cells。 它似乎只能select整个行中的最后一个单元格:
public Aspose.Cells.Cell EndCellInRow ( Int32 rowIndex )
或者在一个范围内右边的最后一个单元格:
public Aspose.Cells.Cell EndCellInRow ( Int32 startRow, Int32 endRow, Int32 startColumn, Int32 endColumn )
但是你必须或多或less知道你的桌子有多大。
我从2009年发现这个: http : //www.aspose.com/community/forums/permalink/196519/196405/showthread.aspx但是这不会解决我的问题,因为我可能有许多表在水平和verticalally在工作表中。 而我无法预测他们将会在哪里。
编辑1:对不起,如果这是愚蠢的问题,但Ctrl + Shift +箭头是这样一个常见的操作,我不能相信它不会实现,所以我确保我真的要重新发明轮子。
Aspose.Cells使用名为“Worksheet.ListObjects”的属性在工作表中提供表的列表。 “ListObjects”是一个“ListObject”types的对象,它代表了Excel工作表中的表格。 这意味着如果工作表中有多个表,ListObjects集合将非常方便地访问工作表中的每个表。 每个“ListObject”又包含一个名为“DataRange”的属性,它指定了表格内的所有单元格。 为了方便起见DataRange可以用于以下操作:
- 在表中的单元格上应用样式/格式
- 获取数据值
- 合并或移动范围内的单元格
- 导出内容
- 让枚举数遍历表格单元格
要从DataRange中select单元格,可以使用DataRange遍历一行中的所有单元格(这也可以在列中完成)
像使用Ctrl + Shift + Arrowselect单元格一样对表格单元格应用任何操作都可以使用工作簿对象执行,如下所示:
Workbook workbook = new Workbook(new FileStream("book1.xls", FileMode.Open)); if (workbook.Worksheets[0].ListObjects.Count > 0) { foreach (ListObject table in workbook.Worksheets[0].ListObjects) { Style st = new Style(); st.BackgroundColor = System.Drawing.Color.Aqua; st.ForegroundColor = System.Drawing.Color.Black; st.Font.Name = "Agency FB"; st.Font.Size = 16; st.Font.Color = System.Drawing.Color.DarkRed; StyleFlag stFlag = new StyleFlag(); stFlag.All = true; table.DataRange.ApplyStyle(st, stFlag); } } workbook.Save("output.xls");
Aspose文档中还有一些有用的信息可用于表格样式和在ListObject上应用格式 。 为了获得某个行或列中的最后一个表单元格,我相信这将有助于:
int iFirstRowIndex = table.DataRange.FirstRow; int iFirstColumnIndex = table.DataRange.FirstColumn; int iLastRowIndex = table.DataRange.RowCount + iFirstRowIndex; int iLastColumnIndex = table.DataRange.ColumnCount + iFirstColumnIndex; for (int rowIndex = 0; rowIndex < table.DataRange.RowCount; rowIndex++) { //Get last cell in every row of table Cell cell = worksheet.Cells.EndCellInColumn(rowIndex + iFirstRowIndex, rowIndex + iFirstRowIndex, (short)iFirstColumnIndex, (short)(iLastColumnIndex - 1)); //display cell value System.Console.WriteLine(cell.Value); }
- 有没有办法在Aspose单元FreezePanes(在数据透视表)?
- C#中的Excel工作表注释
- Aspose cell exception:om.ctc.wstx.sr.ValidatingStreamReader不能转换为com.ctc.wstx.sr.ValidatingStreamReader
- Aspose-Cells:工作表上的自动filter,多于26列
- 使用aspose.cells或MS-Excel将一个工作表单元格区域引用设置为另一个工作表
- 在Aspose-Cells中的一个单元格中应用多个样式
- 我应该如何增加使用Aspose单元的Excel打印输出页面的大小?
- 我如何设置aspose单元格从OS的date格式的区域设置?
- 为什么试图在数据透视表中着色范围没有效果(Aspose Cells)?