/// <summary>
        /// DataGridViewをExcelワークシートに変換します。
        /// </summary>
        /// <param name="grid">変換元のDataGridView</param>
        /// <param name="worksheet">変換先のExcelワークシート</param>
        public void Convert(DataGridView grid, ref Worksheet worksheet)
        {
            this.SetColumn(grid, ref worksheet);
            this.SetValue(grid, ref worksheet);

            return;
        }
        /// <summary>
        /// DataGridViewから、Excelの値に関する設定を行います。
        /// </summary>
        /// <param name="grid">変換元のDataGridViewオブジェクト</param>
        /// <param name="worksheet">変換先のExcelワークシート</param>
        private void SetValue(DataGridView grid, ref Worksheet worksheet)
        {
            // グリッド行でループ処理
            int excelRowIndex = 2;
            foreach (DataGridViewRow gridRow in grid.Rows)
            {
                // 非表示なら処理しない
                if (false == gridRow.Visible)
                {
                    continue;
                }

                // グリッド列でループ処理
                int excelColumnIndex = 1;
                foreach (DataGridViewColumn gridColumn in grid.Columns)
                {
                    // 非表示なら処理しない
                    if (false == gridColumn.Visible)
                    {
                        continue;
                    }

                    // セル設定
                    dynamic cell = worksheet.Cells[excelRowIndex, excelColumnIndex];
                    DataGridViewCell gridCell = gridRow.Cells[gridColumn.Index];
                    cell.Value = gridCell.Value;
                    this.SetFormat(gridCell, ref cell);
                    this.SetCellBackColor(gridCell.Style.BackColor, ref cell);

                    ++excelColumnIndex;
                }

                ++excelRowIndex;
            }

            return;
        }
        /// <summary>
        /// DataGridViewから、Excelの列に関する設定を行います。
        /// </summary>
        /// <param name="grid">変換元のDataGridViewオブジェクト</param>
        /// <param name="worksheet">変換先のExcelワークシート</param>
        private void SetColumn(DataGridView grid, ref Worksheet worksheet)
        {
            int excelColumnIndex = 1;
            foreach (DataGridViewColumn gridColumn in grid.Columns)
            {
                // 非表示なら処理しない
                if (false == gridColumn.Visible)
                {
                    continue;
                }

                dynamic cell = worksheet.Cells[1, excelColumnIndex];
                dynamic columnRange = cell.EntireColumn;

                // 列全体の設定
                columnRange.ColumnWidth = gridColumn.Width / columnRange.Font.Size * 2;
                this.SetFormat(gridColumn, ref columnRange);
                this.SetCellBackColor(gridColumn.DefaultCellStyle.BackColor, ref columnRange);
                this.SetHorizontalAlignment(gridColumn.DefaultCellStyle.Alignment, ref columnRange);

                // 列見出しの設定
                cell.Value = gridColumn.HeaderText;
                this.SetCellBackColor(gridColumn.HeaderCell.Style.BackColor, ref cell);
                this.SetHorizontalAlignment(gridColumn.HeaderCell.Style.Alignment, ref columnRange);

                ++excelColumnIndex;
            }

            return;
        }