PowerPoint C#에서 표 만들기 및 조작

테이블은 행과 열의 형태로 데이터를 정렬하는 데 사용됩니다. 또한 데이터를 쉽게 보고 분석할 수 있도록 구성하고 요약합니다. MS PowerPoint에서는 프레젠테이션에 표를 삽입할 수도 있습니다. 따라서 이 문서에서는 C#을 사용하여 PowerPoint 프레젠테이션에서 표를 만들고 조작하는 방법을 다룹니다.

PowerPoint에서 테이블을 만들고 조작하는 C# API

PowerPoint 프레젠테이션에서 테이블을 만들고 조작하기 위해 Aspose.Slides for .NET을 사용합니다. API를 사용하면 PowerPoint 및 OpenOffice 문서를 생성, 조작 및 변환할 수 있습니다. API의 DLL을 다운로드하고 프로젝트에 참조를 추가할 수 있습니다. 또한 NuGet을 사용하여 설치할 수 있습니다.

PM> Install-Package Aspose.Slides.NET

C#을 사용하여 PowerPoint 프레젠테이션에서 표 만들기

.NET용 Aspose.Slides를 사용하여 테이블을 만드는 것은 케이크 조각입니다. 다음 단계에서는 C#을 사용하여 PowerPoint 프레젠테이션에서 표를 만드는 방법을 보여줍니다.

  • 먼저 Presentation 클래스를 사용하여 새 프레젠테이션을 만들거나 기존 프레젠테이션을 로드합니다.
  • 그런 다음 ISlide 개체에 원하는 슬라이드의 참조를 가져옵니다.
  • double[] 배열에서 열과 행의 너비와 높이를 각각 정의합니다.
  • ISlide.Shapes.AddTable() 메서드를 사용하여 프레젠테이션에 새 테이블을 삽입합니다.
  • ITable 개체에서 새로 생성된 테이블의 참조를 가져옵니다.
  • 테이블의 행을 반복하는 루프를 만듭니다.
  • 테이블의 셀을 반복하는 중첩 루프를 만들고 각 반복에서 다음 작업을 수행합니다.
  • 마지막으로 Presentation.Save(String, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.

다음 코드 샘플은 PowerPoint 프레젠테이션에서 표를 만드는 방법을 보여줍니다.

// 프레젠테이션 만들기 또는 로드
Presentation pres = new Presentation();

// 첫 번째 슬라이드 액세스
ISlide sld = pres.Slides[0];

// 너비가 있는 열과 높이가 있는 행 정의
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };

// 슬라이드에 표 모양 추가
ITable tbl = sld.Shapes.AddTable(100, 50, dblCols, dblRows);

// 각 셀의 테두리 형식 및 텍스트 설정
for (int row = 0; row < tbl.Rows.Count; row++)
{
	for (int cell = 0; cell < tbl.Rows[row].Count; cell++)
	{  
		// 셀에 텍스트 추가
		tbl.Rows[row][cell].TextFrame.Text = "Cells_" + cell;

		tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.SolidFillColor.Color = Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderTop.Width = 5;

		tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.FillType = (FillType.Solid);
		tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.SolidFillColor.Color= Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderBottom.Width =5;

		tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.SolidFillColor.Color =Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderLeft.Width = 5;

		tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.SolidFillColor.Color = Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderRight.Width = 5;
	}
}

// PPTX를 디스크에 저장
pres.Save("table.pptx", SaveFormat.Pptx);

다음 스크린샷은 위의 코드를 사용하여 만든 테이블을 보여줍니다.

PowerPoint C#에서 테이블 만들기

C#을 사용하여 프레젠테이션의 테이블에 액세스

기존 PowerPoint 프레젠테이션의 표에 액세스하여 필요에 따라 조작할 수도 있습니다. 다음은 프레젠테이션의 테이블에 액세스하는 단계입니다.

  • 먼저 Presentation 클래스를 사용하여 기존 프레젠테이션을 로드합니다.
  • 그런 다음 ISlide 개체에 원하는 슬라이드의 참조를 가져옵니다.
  • ITable의 인스턴스를 만들고 null로 초기화합니다.
  • ISlide.Shapes 컬렉션의 모든 IShape 개체를 반복합니다.
  • ITable 유형의 모양을 필터링합니다.
  • ITable에 모양을 입력하고 필요에 따라 조작하십시오.
  • 마지막으로 Presentation.Save(String, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.

다음 코드 샘플은 C#을 사용하여 PowerPoint 프레젠테이션의 테이블에 액세스하는 방법을 보여줍니다.

// 프레젠테이션 로드
using (Presentation pres = new Presentation("UpdateExistingTable.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[0, 1].TextFrame.Text = "New";

    //PPTX를 디스크에 쓰기
    pres.Save("table1_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

C#을 사용하여 PowerPoint 테이블의 텍스트 서식 지정

.NET용 Aspose.Slides를 사용하면 아래 단계에서 설명하는 것처럼 테이블의 서식을 아주 쉽게 설정할 수도 있습니다.

  • 먼저 Presentation 클래스를 사용하여 기존 프레젠테이션을 로드합니다.
  • 그런 다음 ISlide 개체에 원하는 슬라이드의 참조를 가져옵니다.
  • 슬라이드에서 ITable 개체로 원하는 테이블의 참조를 검색합니다.
  • PortionFormat, ParagraphFormatTextFrameFormat 클래스를 사용하여 서식을 설정합니다.
  • ITable.setTextFormat() 메서드를 사용하여 테이블에 서식을 지정합니다.
  • 마지막으로 Presentation.Save(String, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.

다음 코드 샘플은 C#을 사용하여 PowerPoint에서 표의 서식을 설정하는 방법을 보여줍니다.

// 프레젠테이션 만들기 또는 로드
Presentation presentation = new Presentation();

// 슬라이드 참조 가져오기
ISlide slide = presentation.Slides[0];

// 테이블 참조 가져오기
ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // let's say that the first shape on the first slide is a table

// 표 셀의 글꼴 높이 설정
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.SetTextFormat(portionFormat);

// 한 번의 호출로 표 셀의 텍스트 정렬 및 오른쪽 여백 설정
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.SetTextFormat(paragraphFormat);

// 표 셀의 텍스트 세로 유형 설정
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.SetTextFormat(textFrameFormat);

// 프레젠테이션 저장
presentation.Save("result.pptx", SaveFormat.Pptx);

C#을 사용하여 PowerPoint에서 테이블의 가로 세로 비율 잠금

C#을 사용하여 PowerPoint 프레젠테이션에서 표의 가로 세로 비율을 잠글 수도 있습니다. 이를 달성하기 위한 단계는 다음과 같습니다.

  • 먼저 Presentation 클래스를 사용하여 기존 프레젠테이션을 로드합니다.
  • 그런 다음 ISlide 개체에 원하는 슬라이드의 참조를 가져옵니다.
  • 테이블을 생성하거나 기존 테이블의 참조를 ITable 객체로 검색합니다.
  • ITable.ShapeLock.AspectRatioLocked 속성을 !ITable.ShapeLock.AspectRatioLocked로 설정하여 종횡비를 잠급니다.
  • 마지막으로 Presentation.Save(String, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.

다음 코드 샘플은 PowerPoint 프레젠테이션에서 표의 가로 세로 비율을 잠그는 방법을 보여줍니다.

// 프레젠테이션 로드
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // 테이블 참조 가져오기
    ITable table = (ITable)pres.Slides[0].Shapes[0];
    Console.WriteLine($"가로 세로 비율 잠금 set: {table.ShapeLock.AspectRatioLocked}");

    // 가로 세로 비율 잠금
    table.ShapeLock.AspectRatioLocked = !table.ShapeLock.AspectRatioLocked; // invert
    Console.WriteLine($"가로 세로 비율 잠금 set: {table.ShapeLock.AspectRatioLocked}");

    // 프레젠테이션 저장
    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

무료 API 라이선스 받기

무료 임시 라이선스를 얻으면 평가 제한 없이 .NET용 Aspose.Slides를 사용할 수 있습니다.

결론

이 문서에서는 C#을 사용하여 PowerPoint 프레젠테이션에서 표를 만드는 방법을 배웠습니다. 또한 PowerPoint 프레젠테이션의 기존 테이블에 프로그래밍 방식으로 액세스하고 조작하는 방법을 살펴보았습니다. 또한 문서를 방문하여 .NET용 Aspose.Slides에 대해 자세히 알아볼 수 있습니다. 또한 포럼을 통해 질문할 수 있습니다.

또한보십시오