- ///---------------------------------------------------------------------------
- /// 機能ID :ExcelAccess
- ///
- /// 機能名 :Excel操作クラス
- ///
- /// システム :バッチもばっちり
- ///
- /// 作成日 :2008年6月5日
- ///
- /// 作成者 :
- ///
- /// 機能説明 :Excelに対して操作を提供する。
- ///---------------------------------------------------------------------------
- using System;
- using System.Data;
- using System.Configuration;
- using System.Collections;
- using Microsoft.Office.Core;
- namespace CommonPrj
- {
- 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;
- }
- }
- }
C#Excel操作类
最新推荐文章于 2025-03-11 16:27:38 发布