ClosedXMLでExcelのBookを作成してみる
クローバーフィールドの杉山です。
10連休もあっと言う間に終わりですね。
リハビリも兼ねてClosedXMLを使用してExcelのBook(xlsx形式)を作成してみたいと思います。
ClosedXMLは、前回のOpenXMLをラッピングしており、かつExcelのみ取り扱えるようです。
対応しているExcelのBookの形式としては、xlsx形式とマクロが含まれるxlsm形式の2つのみ。
目的に特化しているので、Closedなのでしょうか。
とりあえず、”It aims to provide an intuitive and user-friendly interface to dealing with the underlying OpenXML API.”とあるので、OpenXMLを利用した際に感じた手数の多さが気になる人たちがやっぱりいた訳ですね。
まずは開発環境にCloseXMLのライブラリを取得します。
Visual Studioで新しいプロジェクトを作成し、パッケージマネージャコンソールを起動し、下記のコマンドを実行します。
PM> Install-Package ClosedXML
令和元年5月6日現在、ClosedXML.0.94.2がインストールされました。
これで、コードを書く準備ができました。
今回は、GitHubで公開されているCloseXMLのWikiを参考にコードを書いてみたいと思います。
と、思ったら[Examples]-[Hello World]にもろにコードがありました。
比較用にコードを貼り付けておきます。
さすがに、ラッピングしているだけあってコードの量がぐんと減りました。
行(row)やセルを新規追加する場合は、特に意識せすに値を設定できるのが非常に楽です。
更にBookのCloseすら無いです。
今回はコードを書いていませんが、書式の設定も簡単にできます。
OpenXMLはXMLを組み立ているイメージでしたが、ClosedXMLはExcelを直接操作しているイメージで使いやすいと感じました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ClosedXML.Excel; namespace ExcelClosedXML { class Program { static void Main(string[] args) { String filepath = @"c:\output\ClosedXML.xlsx"; var workbook = new XLWorkbook(); var worksheet = workbook.Worksheets.Add("mySheet"); worksheet.Cell("A1").Value = "Hello, Excel!"; workbook.SaveAs(filepath); } } } |