您的位置:首页 > 编程语言 > C#

c#操作excel封装的类

2014-04-28 15:17 423 查看
using System;

using System.Collections.Generic;

using System.Text;

using Excel = Microsoft.Office.Interop.Excel;

using System.Diagnostics;

using System.Windows.Forms;

namespace OfficeManager

{

public class ExcelClass : IDisposable

{

private Excel._Application m_ExcelApplication = null;

private Excel._Workbook m_Workbook = null;

public Excel._Worksheet m_Worksheet = null;

private object missing = System.Reflection.Missing.Value;

public ExcelClass()

{

if (m_ExcelApplication == null)

{

m_ExcelApplication = new Excel.ApplicationClass();

}

}

~ExcelClass()

{

try

{

if (m_ExcelApplication != null)

m_ExcelApplication.Quit();

}

catch (Exception ex)

{

Debug.Write(ex.ToString());

}

}

/// <summary>

/// 获取或设置当前工作表

/// </summary>

public int CurrentWorksheetIndex

{

set

{

if (value <= 0 || value > m_Workbook.Worksheets.Count)

throw new Exception("索引超出范围");

else

{

object index = value;

m_Worksheet = m_Workbook.Worksheets[index] as Excel._Worksheet;

}

}

}

/// <summary>

/// 打开一个Excel工作薄

/// </summary>

/// <param name="fileName"></param>

public void OpenWorkbook(string fileName)

{

m_Workbook = m_ExcelApplication.Workbooks.Open(fileName, missing, missing, missing, missing, missing,

missing, missing, missing, missing, missing, missing, missing, missing, missing);

if (m_Workbook.Worksheets.Count > 0)

{

object index = 1;

m_Worksheet = m_Workbook.Worksheets[index] as Excel._Worksheet;

}

}

/// <summary>

/// 保存数据

/// </summary>

public void Save()

{

if (m_Workbook != null)

{

m_Workbook.Save();

}

}

/// <summary>

/// 关闭文档

/// </summary>

/// <param name="isSave"></param>

public void Close(bool isSave)

{

this.ClearClipboard();

object obj_Save = isSave;

if (m_Workbook != null)

m_Workbook.Close(obj_Save, missing, missing);

}

/// <summary>

/// 设置当前工作表中某单元格的值

/// </summary>

/// <param name="cellIndex"></param>

/// <param name="value"></param>

public Excel.Range SetCellValue(string cellIndex, object value)

{

if (m_Worksheet != null)

{

object cell1 = cellIndex;

Excel.Range range = m_Worksheet.get_Range(cell1, missing);

if (range != null)

{

range.Value2 = value;

}

return range;

}

return null;

}

/// <summary>

/// 合并单元格

/// </summary>

/// <param name="cellIndex1"></param>

/// <param name="cellIndex2"></param>

public Excel.Range Merge(string cellIndex1, string cellIndex2)

{

if (m_Worksheet != null)

{

object cell1 = cellIndex1;

object cell2 = cellIndex2;

Excel.Range range = m_Worksheet.get_Range(cell1, cell2);

range.MergeCells = true;

return range;

}

return null;

}

/// <summary>

/// 将当前工作表中的表格数据复制到剪切板

/// </summary>

public void Copy()

{

if (m_Worksheet != null)

{

try

{

m_Worksheet.UsedRange.Select();

}

catch { }

m_Worksheet.UsedRange.Copy(missing);

}

}

/// <summary>

/// 清空剪切板

/// </summary>

public void ClearClipboard()

{

Clipboard.Clear();

}

#region IDisposable 成员

public void Dispose()

{

try

{

if (m_ExcelApplication != null)

{

this.Close(false);

m_ExcelApplication.Quit();

m_ExcelApplication = null;

}

}

catch (Exception ex)

{

Debug.Write(ex.ToString());

}

}

#endregion

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: