LoginSignup
2
0

More than 3 years have passed since last update.

[C#]ExcelCreatorでExcelファイルのセル読取/書込

Posted at

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版) では使えませんでした。。。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0