kikki's tech note

技術ブログです。UnityやSpine、MS、Javaなど技術色々について解説しています。

C#でExcelを楽に扱うDLLを作ってみた

本章では、C#Excelを楽に扱うDLLを共有します。

公開所

onedrive.live.com

※上記で公開しているDLLは、私が個人的に作成したものであり、本DLLにより生じた、 あらゆる直接的および間接的損害に関し、作者は一切責任を負いません。ご自分の責任において使用してください。
特に、アンマネージコードを扱うために、マネージドコードで例外となりアプリケーションが終了すると、メモリリーク発生の原因となりますのでご注意下さい!

背景

ExcelC#で扱うにあたって、公式DLLのアンマネージコードを意識せず、シンプルに扱えないかなと思いDLLを作成しました。

前提

Excelソフトウェアを利用するDLLであるため、PC・サーバーにExcelがインストールされていることが大前提となります。ご注意下さい!

DLL解説

名前空間

ExcelApps

ExcelBook

用途
  • Bookオブジェクトの取得・作成
  • シートの作成・コピー
  • PDFの作成
使用例
// 新規にエクセルファイルを作成
using (var book = new ExcelBook())
{
    book.Save(@"d:\test.xlsx", FileFormat.XLSX);
}

// エクセルファイルを開いて保存
using (var book = new ExcelBook(@"d:\test.xlsx"))
{
    book.Save();
}

ExcelSheet

用途
  • シートのコピー
  • 印刷領域の設定
  • 行コピー
  • 改ページの挿入
  • セルの取得・設定
使用例
// エクセルファイルの1シート目で印刷領域と改ページを指定
using (var book = new ExcelBook(@"d:\test.xlsx"))
{
    var sheet = book.GetSheet(1);
    sheet.SetPrintArea(1, 1, 10, 100);
    sheet.AddHorizonPageBreak(1, 5);
}

ExcelCell

用途
  • 行列番号の取得
  • セルの値・数式の取得・設定
使用例
// エクセルファイルの1シート目の1セル目の値を取得
using (var book = new ExcelBook(@"d:\test.xlsx"))
{
    var sheet = book.GetSheet(1);
    var cell = sheet.GetCell(Column.A, 1);
    Console.WriteLine(cell.Value);
}

総括

帳票などを作る上で必要な基本的なExcel操作を扱えるDLLにしました。一方細かい操作はできないので、その際には本家のDLLを使われる方がいいかと思います。

以上、「C#Excelを楽に扱うDLLを作ってみた」でした。


※無断転載禁止 Copyright (C) kikkisnrdec All Rights Reserved.