C# 操作Excel的类
来源:互联网 发布:js中undefined怎么办 编辑:程序博客网 时间:2024/06/05 18:28
最近领导要求把一些数导入Excel生成报表, 工作本来是要手动完成的,但咱是做程序的, 应该想一切办法让程序来代替我们完成任务, 于是写了一个操作Excel的程序, 现将代码公布, 希望对读本文的朋友有所帮助
http://xingfustar.cnblogs.com
代码写的不好,请多原谅, 目的与大家多交流学习,有什么问题,欢迎指出.
http://xingfustar.cnblogs.com
使用该代码要先引用Excel
/*----------------------------------------------------------------
// 版权:http://XingFuStar.cnblogs.com
//
// 文件名: OpeareExcel
// 文件功能描述: 用C#来操作Excel,
//
// 作者:XingFuStar
// 日期:2007年8月10日
//
// 当前版本:V1.0.2
//
// 修改日期:2007年8月13日
// 修改内容:增加打开保存等功能
// 修改日期:2007年9月12日
// 修改内容:修改关闭Excel时提供保存选择
//----------------------------------------------------------------*/
using System;
using Microsoft.Office.Core;
using Excel;
namespace XingFuStudio.ExcelEdit
{
class ExcelEdit
{
string myFileName;
Excel.Application myExcel;
Excel.Workbook myWorkBook;
/// <summary>
/// 构造函数,不创建Excel工作薄
/// </summary>
public ExcelEdit()
{
//请不要删除以下信息
//版权:http://XingFuStar.cnblogs.com
}
/// <summary>
/// 创建Excel工作薄
/// </summary>
public void CreateExcel()
{
myExcel = new Excel.Application();
myWorkBook = myExcel.Application.Workbooks.Add(true);
}
/// <summary>
/// 显示Excel
/// </summary>
public void ShowExcel()
{
myExcel.Visible = true;
}
/// <summary>
/// 将数据写入Excel
/// </summary>
/// <param name="data">要写入的二维数组数据</param>
/// <param name="startRow">Excel中的起始行</param>
/// <param name="startColumn">Excel中的起始列</param>
public void WriteData(string[,] data, int startRow, int startColumn)
{
int rowNumber = data.GetLength(0);
int columnNumber = data.GetLength(1);
for (int i = 0; i < rowNumber; i++)
{
for (int j = 0; j < columnNumber; j++)
{
//在Excel中,如果某单元格以单引号“'”开头,表示该单元格为纯文本,因此,我们在每个单元格前面加单引号。
myExcel.Cells[startRow + i, startColumn + j] = "'" + data[i, j];
}
}
}
/// <summary>
/// 将数据写入Excel
/// </summary>
/// <param name="data">要写入的字符串</param>
/// <param name="starRow">写入的行</param>
/// <param name="startColumn">写入的列</param>
public void WriteData(string data, int row, int column)
{
myExcel.Cells[row, column] = data;
}
/// <summary>
/// 将数据写入Excel
/// </summary>
/// <param name="data">要写入的数据表</param>
/// <param name="startRow">Excel中的起始行</param>
/// <param name="startColumn">Excel中的起始列</param>
public void WriteData(System.Data.DataTable data, int startRow, int startColumn)
{
for (int i = 0; i <= data.Rows.Count - 1; i++)
{
for (int j = 0; j <= data.Columns.Count - 1; j++)
{
//在Excel中,如果某单元格以单引号“'”开头,表示该单元格为纯文本,因此,我们在每个单元格前面加单引号。
myExcel.Cells[startRow + i, startColumn + j] = "'" + data.Rows[i][j].ToString();
}
}
}
/// <summary>
/// 读取指定单元格数据
/// </summary>
/// <param name="row">行序号</param>
/// <param name="column">列序号</param>
/// <returns>该格的数据</returns>
public string ReadData(int row, int column)
{
Excel.Range range = myExcel.get_Range(myExcel.Cells[row, column], myExcel.Cells[row, column]);
return range.Text.ToString();
}
/// <summary>
/// 向Excel中插入图片
/// </summary>
/// <param name="pictureName">图片的绝对路径加文件名</param>
public void InsertPictures(string pictureName)
{
Excel.Worksheet worksheet = (Excel.Worksheet)myExcel.ActiveSheet;
//后面的数字表示位置,位置默认
worksheet.Shapes.AddPicture(pictureName, MsoTriState.msoFalse, MsoTriState.msoTrue, 10, 10, 150, 150);
}
/// <summary>
/// 向Excel中插入图片
/// </summary>
/// <param name="pictureName">图片的绝对路径加文件名</param>
/// <param name="left">左边距</param>
/// <param name="top">右边距</param>
/// <param name="width">宽</param>
/// <param name="heigth">高</param>
public void InsertPictures(string pictureName, int left, int top, int width, int heigth)
{
Excel.Worksheet worksheet = (Excel.Worksheet)myExcel.ActiveSheet;
worksheet.Shapes.AddPicture(pictureName, MsoTriState.msoFalse, MsoTriState.msoTrue, top, left, heigth, width);
}
/// <summary>
/// 重命名工作表
/// </summary>
/// <param name="sheetNum">工作表序号,从左到右,从1开始</param>
/// <param name="newSheetName">新的工作表名</param>
public void ReNameSheet(int sheetNum, string newSheetName)
{
Excel.Worksheet worksheet = (Excel.Worksheet)myExcel.Worksheets[sheetNum];
worksheet.Name = newSheetName;
}
/// <summary>
/// 重命名工作表
/// </summary>
/// <param name="oldSheetName">原有工作表名</param>
/// <param name="newSheetName">新的工作表名</param>
public void ReNameSheet(string oldSheetName, string newSheetName)
{
Excel.Worksheet worksheet = (Excel.Worksheet)myExcel.Worksheets[oldSheetName];
worksheet.Name = newSheetName;
}
/// <summary>
/// 新建工作表
/// </summary>
/// <param name="sheetName">工作表名</param>
public void CreateWorkSheet(string sheetName)
{
Excel.Worksheet newWorksheet = (Excel.Worksheet)myWorkBook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
newWorksheet.Name = sheetName;
}
/// <summary>
/// 激活工作表
/// </summary>
/// <param name="sheetName">工作表名</param>
public void ActivateSheet(string sheetName)
{
Excel.Worksheet worksheet = (Excel.Worksheet)myExcel.Worksheets[sheetName];
worksheet.Activate();
}
/// <summary>
/// 激活工作表
/// </summary>
/// <param name="sheetNum">工作表序号</param>
public void ActivateSheet(int sheetNum)
{
Excel.Worksheet worksheet = (Excel.Worksheet)myExcel.Worksheets[sheetNum];
worksheet.Activate();
}
/// <summary>
/// 删除一个工作表
/// </summary>
/// <param name="SheetName">删除的工作表名</param>
public void DeleteSheet(int sheetNum)
{
((Excel.Worksheet)myWorkBook.Worksheets[sheetNum]).Delete();
}
/// <summary>
/// 删除一个工作表
/// </summary>
/// <param name="SheetName">删除的工作表序号</param>
public void DeleteSheet(string sheetName)
{
((Excel.Worksheet)myWorkBook.Worksheets[sheetName]).Delete();
}
- C# 操作Excel的类
- C# 操作Excel的类
- C# 操作Excel的类
- C#的EXCEL操作类
- C# 操作Excel的类
- C# 操作Excel的类
- C# 操作Excel的类
- Excel操作类C#
- C# Excel操作类
- C#操作EXCEL类
- C#操作EXCEL类
- c# 操作excel类
- C# Excel操作类
- C#操作EXCEL类
- c#操作Excel类
- C#调用操作Excel的一个类
- C#调用操作Excel的一个类
- C#调用操作Excel的一个类
- ExcelN多属性设置
- 将Excel应用于报表开发中(一)--开始
- 使用C#和Excel进行报表开发(二)-操作统计图
- C#笔试题目总结
- 教你做一份好简历的八大技巧
- C# 操作Excel的类
- C# 操作Excel的类(接上一篇)
- 把.net程序编译并做成安装程序
- winform窗体传值小结
- 使用C#对XML进行增删改查操作 收藏
- C# INI文件的操作
- 如何在C#中读写INI文件
- C#笔试题亲自考的
- C#笔试题(1)