.NET에서 PowerPoint 표의 행 및 열 관리
Contents
[
Hide
]
소개
PowerPoint 프레젠테이션에서 표의 행과 열을 관리할 수 있도록 Aspose.Slides는 Table 클래스, ITable 인터페이스 및 기타 여러 타입을 제공합니다.
첫 번째 행을 헤더로 설정
- Presentation 클래스의 인스턴스를 생성하고 프레젠테이션을 로드합니다.
- 인덱스를 통해 슬라이드의 참조를 가져옵니다.
- ITable 객체를 생성하고 null로 설정합니다.
- 모든 IShape 객체를 순회하여 해당 표를 찾습니다.
- 표의 첫 번째 행을 헤더로 설정합니다.
다음 C# 코드는 표의 첫 번째 행을 헤더로 설정하는 방법을 보여줍니다:
// Presentation 클래스를 인스턴스화합니다
Presentation pres = new Presentation("table.pptx");
// 첫 번째 슬라이드에 접근합니다
ISlide sld = pres.Slides[0];
// null TableEx를 초기화합니다
ITable tbl = null;
// 도형들을 반복하면서 표에 대한 참조를 설정합니다
foreach (IShape shp in sld.Shapes)
{
if (shp is ITable)
{
tbl = (ITable)shp;
}
}
// 표의 첫 번째 행을 헤더로 설정합니다
tbl.FirstRow = true;
// 프레젠테이션을 디스크에 저장합니다
pres.Save("First_row_header.pptx", SaveFormat.Pptx);
표 행 또는 열 복제
- Presentation 클래스의 인스턴스를 생성하고 프레젠테이션을 로드합니다,
- 인덱스를 통해 슬라이드의 참조를 가져옵니다.
columnWidth배열을 정의합니다.rowHeight배열을 정의합니다.- AddTable 메서드를 사용하여 슬라이드에 ITable 객체를 추가합니다.
- 표 행을 복제합니다.
- 표 열을 복제합니다.
- 수정된 프레젠테이션을 저장합니다.
다음 C# 코드는 PowerPoint 표의 행 또는 열을 복제하는 방법을 보여줍니다:
// Presentation 클래스를 인스턴스화합니다
using (Presentation presentation = new Presentation("Test.pptx"))
{
// 첫 번째 슬라이드에 접근합니다
ISlide sld = presentation.Slides[0];
// 열 너비와 행 높이를 정의합니다
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };
// 슬라이드에 표 형태를 추가합니다
ITable table = sld.Shapes.AddTable(100, 50, dblCols, dblRows);
// 행 1 셀 1에 텍스트를 추가합니다
table[0, 0].TextFrame.Text = "Row 1 Cell 1";
// 행 1 셀 2에 텍스트를 추가합니다
table[1, 0].TextFrame.Text = "Row 1 Cell 2";
// 표 끝에 행 1을 복제합니다
table.Rows.AddClone(table.Rows[0], false);
// 행 2 셀 1에 텍스트를 추가합니다
table[0, 1].TextFrame.Text = "Row 2 Cell 1";
// 행 2 셀 2에 텍스트를 추가합니다
table[1, 1].TextFrame.Text = "Row 2 Cell 2";
// 표의 네 번째 행으로 행 2를 복제합니다
table.Rows.InsertClone(3,table.Rows[1], false);
// 마지막에 첫 번째 열을 복제합니다
table.Columns.AddClone(table.Columns[0], false);
// 네 번째 열 인덱스에 두 번째 열을 복제합니다
table.Columns.InsertClone(3,table.Columns[1], false);
// 프레젠테이션을 디스크에 저장합니다
presentation.Save("table_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}
표에서 행 또는 열 제거
- Presentation 클래스의 인스턴스를 생성하고 프레젠테이션을 로드합니다,
- 인덱스를 통해 슬라이드의 참조를 가져옵니다.
columnWidth배열을 정의합니다.rowHeight배열을 정의합니다.- AddTable 메서드를 사용하여 슬라이드에 ITable 객체를 추가합니다.
- 표 행을 제거합니다.
- 표 열을 제거합니다.
- 수정된 프레젠테이션을 저장합니다.
다음 C# 코드는 표에서 행 또는 열을 제거하는 방법을 보여줍니다:
Presentation pres = new Presentation();
ISlide slide = pres.Slides[0];
double[] colWidth = { 100, 50, 30 };
double[] rowHeight = { 30, 50, 30 };
ITable table = slide.Shapes.AddTable(100, 100, colWidth, rowHeight);
table.Rows.RemoveAt(1, false);
table.Columns.RemoveAt(1, false);
pres.Save("TestTable_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
표 행 수준에서 텍스트 서식 지정
- Presentation 클래스의 인스턴스를 생성하고 프레젠테이션을 로드합니다,
- 인덱스를 통해 슬라이드의 참조를 가져옵니다.
- 슬라이드에서 해당 ITable 객체에 접근합니다.
- 첫 번째 행 셀의 FontHeight를 설정합니다.
- 첫 번째 행 셀의 Alignment 및 MarginRight를 설정합니다.
- 두 번째 행 셀의 TextVerticalType를 설정합니다.
- 수정된 프레젠테이션을 저장합니다.
다음 C# 코드는 해당 작업을 보여줍니다.
// Presentation 클래스의 인스턴스를 생성합니다
Presentation presentation = new Presentation();
ISlide slide = presentation.Slides[0];
ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // 첫 번째 슬라이드의 첫 번째 도형이 표라고 가정합니다
// 첫 번째 행 셀의 폰트 높이를 설정합니다
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.Rows[0].SetTextFormat(portionFormat);
// 첫 번째 행 셀의 텍스트 정렬 및 오른쪽 여백을 설정합니다
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.Rows[0].SetTextFormat(paragraphFormat);
// 두 번째 행 셀의 텍스트 수직 유형을 설정합니다
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.Rows[1].SetTextFormat(textFrameFormat);
// 프레젠테이션을 디스크에 저장합니다
presentation.Save("result.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
표 열 수준에서 텍스트 서식 지정
- Presentation 클래스의 인스턴스를 생성하고 프레젠테이션을 로드합니다,
- 인덱스를 통해 슬라이드의 참조를 가져옵니다.
- 슬라이드에서 해당 ITable 객체에 접근합니다.
- 첫 번째 열 셀의 FontHeight를 설정합니다.
- 첫 번째 열 셀의 Alignment 및 MarginRight를 설정합니다.
- 두 번째 열 셀의 TextVerticalType를 설정합니다.
- 수정된 프레젠테이션을 저장합니다.
다음 C# 코드는 해당 작업을 보여줍니다:
// Presentation 클래스의 인스턴스를 생성합니다
Presentation pres = new Presentation();
ISlide slide = pres.Slides[0];
ITable someTable = pres.Slides[0].Shapes[0] as ITable; // 첫 번째 슬라이드의 첫 번째 도형이 표라고 가정합니다
// 첫 번째 열 셀의 폰트 높이를 설정합니다
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.Columns[0].SetTextFormat(portionFormat);
// 한 번의 호출로 첫 번째 열 셀의 텍스트 정렬 및 오른쪽 여백을 설정합니다
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.Columns[0].SetTextFormat(paragraphFormat);
// 두 번째 열 셀의 텍스트 수직 유형을 설정합니다
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.Columns[1].SetTextFormat(textFrameFormat);
// 프레젠테이션을 디스크에 저장합니다
pres.Save("result.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
표 스타일 속성 가져오기
Aspose.Slides를 사용하면 표의 스타일 속성을 가져와 다른 표나 다른 곳에서 사용할 수 있습니다. 다음 C# 코드는 표 사전 정의 스타일에서 스타일 속성을 가져오는 방법을 보여줍니다:
using (Presentation pres = new Presentation())
{
ITable table = pres.Slides[0].Shapes.AddTable(10, 10, new double[] { 100, 150 }, new double[] { 5, 5, 5 });
table.StylePreset = TableStylePreset.DarkStyle1; // 기본 스타일 프리셋 테마를 변경합니다
pres.Save("table.pptx", SaveFormat.Pptx);
}
자주 묻는 질문
이미 만든 표에 PowerPoint 테마/스타일을 적용할 수 있나요?
예. 표는 슬라이드/레이아웃/마스터 테마를 상속하지만 해당 테마 위에 채우기, 테두리 및 텍스트 색상을 덮어쓸 수 있습니다.
Excel처럼 표 행을 정렬할 수 있나요?
아니요, Aspose.Slides 표에는 내장된 정렬이나 필터 기능이 없습니다. 먼저 메모리 내에서 데이터를 정렬한 다음 해당 순서대로 표 행을 다시 채워야 합니다.
특정 셀에 사용자 정의 색상을 유지하면서 줄무늬(밴드) 열을 적용할 수 있나요?
예. 줄무늬 열을 활성화한 후 특정 셀에 로컬 서식을 적용하면 됩니다. 셀 수준 서식이 표 스타일보다 우선합니다.