C# Excel操作

1.在控制面板中,选择“添加删除程序”,找到office,选择“更改”,在对话框中选择“添加删除功能”,然后选择自定义安装,添加上office工具中的.net可编程性支持,安全起见,把excel下的,word下的此选项都添加上,然后点击“更新”按钮,更新office,完成后再回到.net开发平台,OK!没有问题了!

 2.在项目引用中右击选择添加引用,选择COM里面选择MicroftOffice 12.0 object Library和Microft Excel 12.0 objectLibrary分别点确定即可!同样如果要引用World选Microft World 12.0 object Library! 2003/2007共通处理方式 分别为11或12版本 添加.net中Microsoft.Office.Interop.excel; 添加.net中Office

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using Microsoft.Office.Core;
namespace excel
{
    public class ExcelAccess
    {
        private Excel.Application m_objExcelApp;              //Excelのインスタンス
        private Excel.Workbook m_objExcelWorkBook;            //ワークブックのインスタンス
        private Excel.Worksheet m_objExcelWorkSheet;          //ワークシートのインスタンス
        private Excel.Worksheet m_objTempWorkSheet;           //臨時ワークシート
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :コンストラクタ
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :コンストラクタ
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public ExcelAccess()
        {
            //Excelのインスタンスの生成を行う。
            m_objExcelApp = new Excel.Application();
            m_objExcelApp.DisplayAlerts = false;
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelファイルのオープン操作
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_strExcelFileName - Excelファイル名
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelファイルのオープン操作を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void OpenExcelFile(string p_strExcelFileName)
        {
            //Excelフォーマットファイルを開く
            m_objExcelWorkBook = m_objExcelApp.Workbooks.Open(p_strExcelFileName, Type.Missing,
                true, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing);
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelファイルのオープン操作
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_strExcelFileName - Excelファイル名
        ///           p_ReadOnlyFlag - ReadOnlyFlag
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelファイルのオープン操作を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void OpenExcelFile(string p_strExcelFileName, bool p_ReadOnlyFlag)
        {
            //Excelフォーマットファイルを開く
            m_objExcelWorkBook = m_objExcelApp.Workbooks.Open(p_strExcelFileName, Type.Missing,
                p_ReadOnlyFlag, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing);
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelのワークシートのオープン操作
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_strSheetName - ワークシート名
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelのワークシートのオープン操作を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SelectSheet(string p_strSheetName)
        {
            //入力したワークシート名より、Excelのワークシートを選択する
            m_objExcelWorkSheet = (Excel.Worksheet)m_objExcelWorkBook.Sheets[p_strSheetName];
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelのワークシートのオープン操作
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :ExcelのActiveシートのオープン操作を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SelectSheet()
        {
            //ExcelのActiveシートを選択する
            m_objExcelWorkSheet = (Excel.Worksheet)m_objExcelWorkBook.ActiveSheet;
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelのワークシートのオープン操作
        ///
        /// 返り値   :p_intSheetIndex - ワークシート番号
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :ExcelのActiveシートのオープン操作を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SelectSheet(int p_intSheetIndex)
        {
            m_objExcelWorkSheet = (Excel.Worksheet)m_objExcelWorkBook.Sheets[p_intSheetIndex];
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelの一時ワークシートのオープン操作
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_strSheetName - ワークシート名
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelの一時ワークシートのオープン操作を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SelectTempSheet(string p_strSheetName)
        {
            m_objTempWorkSheet = (Excel.Worksheet)m_objExcelWorkBook.Sheets[p_strSheetName];
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelワークシートのコピー処理
        ///
        /// 返り値   :Integer - Excelの最大行
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelワークシートのコピー処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void CopyWorkSheet()
        {
            m_objExcelWorkSheet.Copy(Type.Missing,
                m_objExcelWorkBook.Sheets[SheetCount()]);
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelワークシート数取得処理
        ///
        /// 返り値   :Integer - Excelのワークシート数
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelワークシート数の取得処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public int SheetCount()
        {
            return m_objExcelWorkBook.Sheets.Count;
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelワークシート名の取得処理
        ///
        /// 返り値   :Excelワークシート名
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelワークシート名の取得処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public string SheetName()
        {
            Excel.Worksheet objWorkSheet = (Excel.Worksheet)m_objExcelWorkBook.ActiveSheet;
            return objWorkSheet.Name;
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelのセルの内容設定処理
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_intRows - Excelの行
        ///           p_intColumn - Excelの列
        ///           p_strValue - 設定項目
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelのセルの内容設定処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SetCellValue(int p_intRows, int p_intColumn, string p_strValue)
        {
            //セルの内容を設定する。
            if (p_intRows <= 65528)
            {
                m_objExcelWorkSheet.Cells[p_intRows, p_intColumn] = p_strValue;
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelのセルの内容取得処理
        ///
        /// 返り値   :取得したExcelのセル
        ///
        /// 引き数   :p_intRows - Excelの行
        ///           p_intColumn - Excelの列
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelのセルの内容取得処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public string GetCellValue(int p_intRows, int p_intColumn)
        {
            if (p_intRows <= 65536)
            {
                Excel.Range objRange = (Excel.Range)m_objExcelWorkSheet.Cells[p_intRows, p_intColumn];
                //セルの内容取得処理
                if (objRange.Text == null)
                {
                    return string.Empty;
                }
                else
                {
                    return objRange.Text.ToString();
                }
            }
            else
            {
                return string.Empty;
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelの印刷処理
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_strStartCell - Excelの開始のセル
        ///           p_strEndCell - Excelの終了のセル
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelの印刷処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SetPageArea(string p_strStartCell, string p_strEndCell)
        {
            m_objExcelWorkSheet.PageSetup.PrintArea =
                p_strStartCell + ":" + p_strEndCell;
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :指定のExcelファイルによって、名前を付けて保存処理
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_strName - 名前を付けて保存のファイル名
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :指定のExcelファイルによって、名前を付けて保存処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SaveAs(string p_strName)
        {
            //指定のExcelファイルによって、名前を付けて保存処理
            m_objExcelWorkBook.SaveAs(p_strName, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing);
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :指定のExcelファイルによって、保存処理
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :指定のExcelファイルによって、名前を付けて保存処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void Save()
        {
            m_objExcelWorkBook.Save();
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excel最大行の取得処理
        ///
        /// 返り値   :Excelの最大行
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excel最大行の取得処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public int RowsCount()
        {
            //Excel最大行の取得処理
            return m_objExcelWorkSheet.UsedRange.Rows.Count;
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excel最大列の取得処理
        ///
        /// 返り値   :Excelの最大列
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excel最大列の取得処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public int ColumnCount()
        {
            //Excel最大列の取得処理
            return m_objExcelWorkSheet.UsedRange.Columns.Count;
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelのワークシートの破棄
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelのワークシートの破棄を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        private void CloseWorkBook()
        {
            if (m_objExcelWorkSheet != null)
            {
                //ワークシートをリリースする。
                System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objExcelWorkSheet);
                m_objExcelWorkSheet = null;
            }
            if (m_objTempWorkSheet != null)
            {
                //ワークシートをリリースする。
                System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objTempWorkSheet);
                m_objTempWorkSheet = null;
            }
            if (m_objExcelWorkBook != null)
            {
                m_objExcelWorkBook.Close(false, Type.Missing, Type.Missing);
                //ワークブックをリリースする。
                System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objExcelWorkBook);
                m_objExcelWorkBook = null;
            }
            GC.Collect();
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelのワークシートの破棄
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelのワークシートの破棄を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void Close()
        {
            //ワークブックを保存してからクロースする。
            CloseWorkBook();
            GC.Collect();
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelのアプリケーションの破棄
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelのアプリケーションの破棄を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        private void ExitApp()
        {
            CloseWorkBook();
            //Excelを終了する。
            m_objExcelApp.Quit();
            if (m_objExcelApp != null)
            {
                //Excelをリリースする。
                System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objExcelApp);
                m_objExcelApp = null;
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelのアプリケーションの破棄
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelのアプリケーションの破棄を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void ExitApplication()
        {
            ExitApp();
            GC.Collect();
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :FontColorの設定操作
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_intRow - Excelの行
        ///           p_intColumn - Excelの列
        ///           p_intColorIndex - Colorのインデックス
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :FontColorの設定を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void ChangeFontColor(int p_intRow, int p_intColumn, int p_intColorIndex)
        {
            if (p_intRow <= 65528)
            {
                //ExcelのRange取得
                Excel.Range objRange = (Excel.Range)m_objExcelWorkSheet.Cells[p_intRow, p_intColumn];
                //FontColorの設定操作
                objRange.Font.ColorIndex = p_intColorIndex;
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :FontColorの設定操作
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_intStartRow - Excelの開始行
        ///           p_intStartColumn - Excelの開始列
        ///           p_intEndRow - Excelの終了行
        ///           p_intEndColumn - Excelの終了列
        ///           p_intColorIndex - Colorのインデックス
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :FontColorの設定を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void ChangeFontColor(int p_intStartRow, int p_intStartColumn, int p_intEndRow,
            int p_intEndColumn, int p_intColorIndex)
        {
            if (p_intStartRow <= 65528 && p_intEndRow <= 65528)
            {
                //ExcelのRange取得
                Excel.Range objRange = m_objExcelWorkSheet.get_Range(m_objExcelWorkSheet.Cells
                    [p_intStartRow, p_intStartColumn], m_objExcelWorkSheet.Cells
                    [p_intEndRow, p_intEndColumn]);
                FontColorの設定操作
                objRange.Font.ColorIndex = p_intColorIndex;
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelファイル指定セルの文字の配置の設定
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_intRow - Excelの行
        ///           p_intColumn - Excelの列
        ///           Halign - 横位置文字の配置
        ///           Valign - 縦位置文字の配置
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelファイル指定セルの文字の配置の設定を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SetAlign(int p_intRow, int p_intColumn,
                Excel.XlHAlign Halign, Excel.XlVAlign Valign)
        {
            if (p_intRow <= 65528)
            {
                //ExcelのRange取得
                Excel.Range objRange = m_objExcelWorkSheet.get_Range
                             (m_objExcelWorkSheet.Cells[p_intRow, p_intColumn],
                             m_objExcelWorkSheet.Cells[p_intRow, p_intColumn]);
                //横位置文字の配置の設定
                objRange.HorizontalAlignment = Halign;
                //縦位置文字の配置の設定
                objRange.VerticalAlignment = Valign;
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :ExcelのRangeの取得
        ///
        /// 返り値   :取得したExcelのRange
        ///
        /// 引き数   :p_intStartRow - Excelの開始行
        ///           p_intStartColumn - Excelの開始列
        ///           p_intEndRow - Excelの終了行
        ///           p_intEndColumn - Excelの終了列
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :ExcelのRangeの取得を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public Excel.Range GetRange(int p_intStartRow, int p_intStartColumn,
            int p_intEndRow, int p_intEndColumn)
        {
            if (p_intStartRow <= 65528 && p_intEndRow <= 65528)
            {
                Excel.Range objRange = m_objExcelWorkSheet.get_Range
                             (m_objExcelWorkSheet.Cells[p_intStartRow, p_intStartColumn],
                             m_objExcelWorkSheet.Cells[p_intEndRow, p_intEndColumn]);
                return objRange;
            }
            else
            {
                return null;
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelファイル指定範囲の色の設定
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_intRow - Excelの行
        ///           p_intColumn - Excelの列
        ///           p_intcolorIndex - Colorのインデックス
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelファイル指定範囲の文字の配置の設定を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SetBackColor(int p_intRow, int p_intColumn, int p_intcolorIndex)
        {
            if (p_intRow <= 65528)
            {
                Excel.Range objRange = m_objExcelWorkSheet.get_Range
                              (m_objExcelWorkSheet.Cells[p_intRow, p_intColumn],
                              m_objExcelWorkSheet.Cells[p_intRow, p_intColumn]);
                objRange.Interior.ColorIndex = p_intcolorIndex;
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelファイル指定範囲の色の設定
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_intStartRow - Excelの開始行
        ///           p_intStartColumn - Excelの開始列
        ///           p_intEndRow - Excelの終了行
        ///           p_intEndColumn - Excelの終了列
        ///           p_intColorIndex - Colorのインデックス
        ///
        /// 作成日  :2008年6月5日
        ///
        /// 作成者  :
        ///
        /// 機能説明 :Excelファイル指定範囲の文字の配置の設定を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SetBackColor(int p_intStartRow, int p_intStartColumn,
            int p_intEndRow, int p_intEndColumn, int p_intcolorIndex)
        {
            if (p_intStartRow <= 65528 && p_intEndRow <= 65528)
            {
                Excel.Range objRange = m_objExcelWorkSheet.get_Range
                              (m_objExcelWorkSheet.Cells[p_intStartRow, p_intStartColumn],
                              m_objExcelWorkSheet.Cells[p_intEndRow, p_intEndColumn]);
                objRange.Interior.ColorIndex = p_intcolorIndex;
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelファイルの行内容のコピー操作
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_objFromRange - コピー元の範囲
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelファイルの行内容のコピー操作を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void CopyToClipboard(Excel.Range p_objFromRange)
        {
            p_objFromRange.Copy(Type.Missing);
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelファイルの内容のペースト操作
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_objDestRange - コピー先の範囲
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelファイルの内容のペースト操作を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void PasteFromClipboard(Excel.Range p_objDestRange)
        {
            // Excelファイルの内容のペースト操作
            p_objDestRange.PasteSpecial(Excel.XlPasteType.xlPasteAll,
                Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone,
                Type.Missing, Type.Missing);
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelファイル指定セルの行高の設定
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_intRow - Excelの行
        ///           p_intHeight - 行高
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelファイル指定セルの行高の設定を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SetRowHeigh(int p_intRow, int p_intHeight)
        {
            int intExcelTotalColumn = ColumnCount();
            // ExcelのRange取得
            if (p_intRow <= 65528)
            {
                Excel.Range objRange = (Excel.Range)m_objExcelWorkSheet.Cells
                    [p_intRow, intExcelTotalColumn];
                objRange.RowHeight = p_intHeight;
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelファイル指定セルの行高の設定
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_intStartRow - Excelの開始行
        ///           p_intEndRow - Excelの終了行
        ///           p_intHeight - 行高
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelファイル指定セルの行高の設定を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SetRowHeigh(int p_intStartRow, int p_intEndRow, int p_intHeight)
        {
            int intExcelTotalColumn = ColumnCount();
            if (p_intStartRow <= 65528 && p_intEndRow <= 65528)
            {
                // ExcelのRange取得
                Excel.Range objRange = (Excel.Range)m_objExcelWorkSheet.get_Range(
                    m_objExcelWorkSheet.Cells[p_intStartRow, intExcelTotalColumn],
                    m_objExcelWorkSheet.Cells[p_intEndRow, intExcelTotalColumn]);
                objRange.RowHeight = p_intHeight;
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelワークシート名の設定処理
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_strOldName - 古いExcelワークシート名
        ///          :p_strNewName - 新しいExcelワークシート名
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelワークシート名の設定処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SetSheetName(string p_strOldName, string p_strNewName)
        {
            Excel.Worksheet objSheet = (Excel.Worksheet)m_objExcelWorkBook.Sheets[p_strOldName];
            objSheet.Name = p_strNewName;
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelワークシートの隠れ処理
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_strSheetName - Excelワークシート名
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelワークシート名の隠れ処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void HideSheet(string p_strSheetName)
        {
            Excel.Worksheet objSheet = (Excel.Worksheet)m_objExcelWorkBook.Sheets[p_strSheetName];
            objSheet.Visible = Excel.XlSheetVisibility.xlSheetHidden;
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :図形のインデックスの取得
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_strShapeName - 図形名
        ///
        /// 作成日   :2008年6月5日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :図形のインデックスの取得
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        private int ShapeIndex(string p_strShapeName)
        {
            string temp = p_strShapeName.Substring(4);
            return int.Parse(temp);
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :Excelワークシート
        ///
        /// 返り値   :bool - True - 存在  False - 存在しない
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelワークシート数の取得処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public bool SheetExist(string p_strSheetName)
        {
            foreach (Excel.Worksheet objSheet in m_objExcelWorkBook.Worksheets)
            {
                if (objSheet.Name == p_strSheetName)
                {
                    return true;
                }
            }
            return false;
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :図形の削除処理
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :図形の削除処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void DeleteShapes(ArrayList ShapesName)
        {
            foreach (string ShapeName in ShapesName)
            {
                m_objExcelWorkSheet.Shapes.Item(ShapeName).Delete();
            }
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :図形の罫線作成(実線)
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_intStartRow - Excelの開始行
        ///           p_intStartColumn - Excelの開始列
        ///           p_intEndRow - Excelの終了行
        ///           p_intEndColumn - Excelの終了列
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :図形の罫線作成を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SetSolidBorder(int p_intStartRow, int p_intStartColumn,
            int p_intEndRow, int p_intEndColumn)
        {
            Excel.Range objRange = GetRange(p_intStartRow, p_intStartColumn,
                p_intEndRow, p_intEndColumn);
            objRange.Borders[Excel.XlBordersIndex.xlDiagonalDown].LineStyle =
                Excel.XlLineStyle.xlLineStyleNone;
            objRange.Borders[Excel.XlBordersIndex.xlDiagonalUp].LineStyle =
                Excel.XlLineStyle.xlLineStyleNone;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle =
                Excel.XlLineStyle.xlContinuous;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeLeft].Weight =
                Excel.XlBorderWeight.xlMedium;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle =
               Excel.XlLineStyle.xlContinuous;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeTop].Weight =
                Excel.XlBorderWeight.xlMedium;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle =
               Excel.XlLineStyle.xlContinuous;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeBottom].Weight =
                Excel.XlBorderWeight.xlMedium;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle =
               Excel.XlLineStyle.xlContinuous;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeRight].Weight =
                Excel.XlBorderWeight.xlMedium;
            objRange.Borders[Excel.XlBordersIndex.xlInsideHorizontal]
                .LineStyle = Excel.XlLineStyle.xlLineStyleNone;
            objRange.Borders[Excel.XlBordersIndex.xlInsideVertical]
                .LineStyle = Excel.XlLineStyle.xlLineStyleNone;
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :図形の罫線作成(虚線)
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :p_intStartRow - Excelの開始行
        ///           p_intStartColumn - Excelの開始列
        ///           p_intEndRow - Excelの終了行
        ///           p_intEndColumn - Excelの終了列
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :図形の罫線作成を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void SetDotBorder(int p_intStartRow, int p_intStartColumn,
            int p_intEndRow, int p_intEndColumn)
        {
            Excel.Range objRange = GetRange(p_intStartRow, p_intStartColumn,
                p_intEndRow, p_intEndColumn);
            objRange.Borders[Excel.XlBordersIndex.xlDiagonalDown].LineStyle =
                Excel.XlLineStyle.xlLineStyleNone;
            objRange.Borders[Excel.XlBordersIndex.xlDiagonalUp].LineStyle =
                Excel.XlLineStyle.xlLineStyleNone;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle =
                Excel.XlLineStyle.xlDashDot;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeLeft].Weight =
                Excel.XlBorderWeight.xlMedium;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle =
               Excel.XlLineStyle.xlDashDot;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeTop].Weight =
                Excel.XlBorderWeight.xlMedium;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle =
               Excel.XlLineStyle.xlDashDot;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeBottom].Weight =
                Excel.XlBorderWeight.xlMedium;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle =
               Excel.XlLineStyle.xlDashDot;
            objRange.Borders[Excel.XlBordersIndex.xlEdgeRight].Weight =
                Excel.XlBorderWeight.xlMedium;
            objRange.Borders[Excel.XlBordersIndex.xlInsideHorizontal]
                .LineStyle = Excel.XlLineStyle.xlLineStyleNone;
            objRange.Borders[Excel.XlBordersIndex.xlInsideVertical]
                .LineStyle = Excel.XlLineStyle.xlLineStyleNone;
        }
        //--------------------------------------------------------------------------
        ///
        /// 機能     :Excelワークシート名の削除処理
        ///
        /// 返り値   :Excelワークシート名
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :Excelワークシート名の削除処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void DeleteWorkSheet(string p_strSheetName)
        {
            Excel.Worksheet objSheet = (Excel.Worksheet)m_objExcelWorkBook.Worksheets[p_strSheetName];
            objSheet.Delete();
        }
        ///--------------------------------------------------------------------------
        ///
        /// 機能     :図形の罫線変更処理
        ///
        /// 返り値   :なし
        ///
        /// 引き数   :なし
        ///
        /// 作成日   :2008年6月3日
        ///
        /// 作成者   :
        ///
        /// 機能説明 :図形の罫線変更処理を行う。
        ///
        /// 注意事項 :なし
        ///
        ///--------------------------------------------------------------------------
        public void ChangeShapeStyle(string p_strShapeName)
        {
            Excel.Shape objShape = m_objExcelWorkSheet.Shapes.Item(p_strShapeName);
            objShape.Line.DashStyle = MsoLineDashStyle.msoLineSquareDot;
        }
        public void ProtectSheet(string p_strSheetName)
        {
            Excel.Worksheet objSheet = (Excel.Worksheet)m_objExcelWorkBook.Sheets[p_strSheetName];
            objSheet.Protect(Type.Missing, false, Type.Missing, false, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing);
        }
        public Excel.Font GetCellFont(int nRow, int nColumn)
        {
            Excel.Range objRange = (Excel.Range)m_objExcelWorkSheet.Cells[nRow, nColumn];
            return objRange.Font;
        }
        public Excel.Shapes GetShapes()
        {
            return m_objExcelWorkSheet.Shapes;
        }
        public int GetShapeCount()
        {
            return m_objExcelWorkSheet.Shapes.Count;
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值