ExcelCreator で Excel ファイルのセル読取/書込の方法の忘備録なります。
1. 環境
試用した環境は下記のとおりです。
- Microsoft® Visual Studio® Community 2019 の Visual C#®
- ExcelCreator 2016 体験版 (ExcelCreator Ver3.6 (ActiveX版) )
体験版の制限事項
"A1" セルに、体験版を知らせる固定のメッセージ文字列が出力されます。
2. 準備
インストール
ExcelCreator 2016 体験版を、下記の Adovance Softwea のページからダウンロードして、インストールします。
参照の追加
Visual Studioのソリューション エクスプローラーから、参照の追加で COM から「ExcelCreator」を検索して追加します。
3. サンプルコード
ExcelManagerEC.cs
using XlsxCrt;
class ExcelManagerEC
{
// ExcelCreatorコントロール
public IExcelCrtOcx Xlsx { get; set; }
// テンプレートの情報
private string _templateFile = string.Empty;
private string _templateSheet = string.Empty;
/// <summary>
/// コンストラクタ
/// </summary>
public ExcelManagerEC(string filename)
{
// Xlsxインスタンス生成
Xlsx = new Xlsx();
// テンプレートの情報取得
GetTemplateConfig();
// ワークブックオープン(オープンするファイル名, オーバーレイ元ファイル名)
Xlsx.OpenBook(filename, @"e:\book1.xlsx");
// ワークシート設定
Xlsx.SheetNo = Xlsx.SheetNo2["Sheet1"];
}
/// <summary>
/// ワークブックをクローズする
/// </summary>
/// <param name="filename">ファイル名</param>
/// <returns>true:正常終了、false:保存失敗</returns>
public bool Close()
{
try
{
Xlsx.CloseBook(true);
}
catch
{
return false;
}
return true;
}
}
test.cs
using System;
using System.Windows.Forms;
public partial class test: Form
{
public test()
{
InitializeComponent();
}
private void Btn1_Click(object sender, EventArgs e)
{
var excelEC = new ExcelManagerEC(@"e:\book3.xlsx");
// セル書込
excelEC.Xlsx.Pos[sx:0, sy:1].Value = "test";
// セル読取(R1C1形式)
var cellValue1 = excelEC.Xlsx.Pos[sx: 0, sy: 1].Value;
// セル読取("A1"形式)
var cellValue2 = excelEC.Xlsx.Cell["A2"];
// 罫線を引く("A1:C3"に、実線、箱型、赤色で)
excelEC.Xlsx.Cell["A1:C3"].Attr.Box(XlsxCrt.XLSX_BORDERSTYLE.xbsThin, XlsxCrt.XLSX_BOXTYPE.xbtBox, XlsxCrt.XLSX_COLOR.xclRed);
// クローズする
if (excelEC.Close() == false)
{
MessageBox.Show("ファイルが既に開かれています。\n閉じてから、再試行してください。",
"エラー",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
class にインターフェースが実装されているので汎用性があるかもしれませんが、Range が使えないので、エクセラーの人は EPPlus より使いづらいかもしれません。(背景色や罫線などのセル書式は、セル範囲を使用できる)
PDF ファイル出力
ExcelCreator 2016 の目玉の一つに、PDF ファイル出力があります。
しかしながら、.NET 版 (ExcelCreator 10.0 for .NET) オンリーのようで、残念ながら体験版の ExcelCreator Ver3.6 (ActiveX版) では使えませんでした。。。