// 本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/beckhans/archive/2008/08/22/2814570.aspx
///---------------------------------------------------------------------------
/// 機能ID :ExcelAccess
///
/// 機能名 :Excel操作クラス
///
/// システム :バッチもばっちり
///
/// 作成日 :2008年6月5日
///
/// 作成者 :
///
/// 機能説明 :Excelに対して操作を提供する。
///---------------------------------------------------------------------------
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;
namespace GeoLogDealer
{
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;
}
}
}