Aspose.Cells 使用名为“Worksheet.ListObjects”的属性提供工作表中的表列表。'ListObjects' 是 'ListObject' 类型的集合,它表示 Excel 工作表中的表。这意味着如果一个工作表中有多个表,ListObjects 集合将非常方便地访问工作表中的每个表。每个“ListObject”又包含一个名为“DataRange”的属性,它指定表中的所有单元格。为方便起见,DataRange 可用于对表进行以下操作:
- 在表格中的单元格上应用样式/格式
- 获取数据值
- 合并或移动 Range 中的单元格
- 导出内容
- 让枚举器遍历表格单元格
要从 DataRange 中选择单元格,您可以使用 DataRange 遍历以获取行中的所有单元格(这也可以为列完成)
对表格单元格应用任何操作,例如使用 Ctrl+Shift+Arrow 选择单元格后,可以使用如下工作簿对象执行:
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);
}