■ 엑셀에 이미지 내보내기 예제

----------------------------------------------------------------------------------------------------

ExportImageToExcel(3, 2, 1, "d:\\sample.jpg");

----------------------------------------------------------------------------------------------------

※ 3번째 시트 2행 1열에 sample.jpg 이미지 파일의 이미지를 삽입한다.

 

■ 엑셀에 이미지 내보내기

----------------------------------------------------------------------------------------------------

using System;

using System.Collections.Generic;

using System.Diagnostics;

 

using Excel = Microsoft.Office.Interop.Excel;

 

#region 엑셀에 이미지 내보내기 - ExportImageToExcel(sheetIndex, rowIndex, columnIndex, sourceImageFilePath)

 

/// <summary>

/// 엑셀에 이미지 내보내기

/// </summary>

/// <param name="sheetIndex">시트 인덱스</param>

/// <param name="rowIndex">행 인덱스</param>

/// <param name="columnIndex">컬럼 인덱스</param>

/// <param name="sourceImageFilePath">소스 이미지 파일 경로</param>

/// <remarks>시트 인덱스, 행 인덱스, 컬럼 인덱스는 1부터 시작한다.</remarks>

public void ExportImageToExcel(int sheetIndex, int rowIndex, int columnIndex, string sourceImageFilePath)

{

    Process[] excelProcessArray = Process.GetProcessesByName("EXCEL");

 

    List<int> excelProcessIDList = new List<int>();

 

    for(int i = 0; i < excelProcessArray.Length; i++)

    {

        excelProcessIDList.Add(excelProcessArray[i].Id);

    }

 

 

    try

    {

        Excel.Application excelApplication = new Excel.Application();

 

        excelApplication.Visible = false;

 

        Excel._Workbook  workbook  = excelApplication.Workbooks.Add(Type.Missing);

        Excel._Worksheet worksheet = workbook.Sheets[sheetIndex];

 

        worksheet.Select();

 

        worksheet.get_Range(worksheet.Cells[rowIndex, columnIndex] as object, worksheet.Cells[rowIndex, columnIndex] as object).Select();

 

        Excel.Pictures excelPictures = worksheet.Pictures(Type.Missing);

 

        excelPictures.Insert(sourceImageFilePath, Type.Missing).Select(Type.Missing);

 

        excelApplication.Visible = true;

    }

    catch

    {

        excelProcessArray = Process.GetProcessesByName("EXCEL");

 

        for(int i = 0; i < excelProcessArray.Length; i++)

        {

            if(!excelProcessIDList.Contains(excelProcessArray[i].Id))

            {

                excelProcessArray[i].Kill();

            }

        }

    }

}

 

#endregion

----------------------------------------------------------------------------------------------------

※ Microsoft.Office.Interop.Excel.dll 파일을 참조한다.

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요