2012-06-13

C# Excel

액셀 cell에 직접 입력 하는 방법의 예.

 
/// 방법: Visual C# 2010 기능을 사용하여 Office Interop 개체에 액세스(C# 프로그래밍 가이드)
/// http://msdn.microsoft.com/ko-kr/library/dd264733
/// 솔루션-> 참조-> "COM" 탭 -> "Microsoft Excel 14.0 Object Library" 추가
/// 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace sample_excel
{
    public class Account
    {
        public int ID { get; set; }
        public double Balance { get; set; }
    }

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Create a list of accounts.
            var bankAccounts = new List {
                                                    new Account { 
                                                                  ID = 345678,
                                                                  Balance = 541.27
                                                                },
                                                    new Account {
                                                                  ID = 1230221,
                                                                  Balance = -127.44
                                                                }
                                                };
            // Display the list in an Excel spreadsheet.
            DisplayInExcel(bankAccounts);
        }

        static void DisplayInExcel(IEnumerable accounts)
        {
            var excelApp = new Excel.Application();
            
            // Make the object visible.
            excelApp.Visible = true;

            // Create a new, empty workbook and add it to the collection returned 
            // by property Workbooks. The new workbook becomes the active workbook.
            // Add has an optional parameter for specifying a praticular template. 
            // Because no argument is sent in this example, Add creates a new workbook. 
            excelApp.Workbooks.Add();

            // This example uses a single workSheet. The explicit type casting is
            // removed in a later procedure.
            Excel._Worksheet workSheet = (Excel.Worksheet)excelApp.ActiveSheet;

            // Establish column headings in cells A1 and B1.
            workSheet.Cells[1, "A"] = "ID Number";
            workSheet.Cells[1, "B"] = "Current Balance";
            workSheet.Cells[1, "C"] = "=SUM(A2:B2)";
            var row = 1;
            foreach (var acct in accounts)
            {
                row++;
                workSheet.Cells[row, "A"] = acct.ID;
                workSheet.Cells[row, "B"] = acct.Balance;
            }

            workSheet.Columns[1].AutoFit();
            workSheet.Columns[2].AutoFit();
        }

    }

}
// 
...

댓글 없음:

댓글 쓰기