Aspose.Cells は、「Worksheet.ListObjects」という名前のプロパティを使用して、ワークシート内のテーブルのリストを提供します。「ListObjects」は、Excel シートの表を表す「ListObject」タイプのコレクションです。つまり、ワークシートに複数のテーブルがある場合、ListObjects コレクションはワークシート内のすべてのテーブルに非常に便利にアクセスできることを意味します。各「ListObject」には、テーブル内のすべてのセルを指定する「DataRange」という名前のプロパティが含まれています。便宜上、DataRange はテーブルに対する次の操作に使用できます。
- 表のセルにスタイル/書式を適用するには
- データ値を取得するには
- 範囲内のセルを結合または移動する
- コンテンツのエクスポート
- 列挙子にテーブル セルをトラバースさせるには
DataRange からセルを選択するには、DataRange を使用して走査し、行内のすべてのセルを取得します (これは列に対しても実行できます)。
Ctrl+Shift+矢印を使用してセルを選択した後のように、テーブル セルに操作を適用するには、次のようにワークブック オブジェクトを使用して実行できます。
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);
}