C#语言实现:创建、打开、读取、写入以及保存EXCEL文档的步骤和代码
步骤:
1)创建Application对象
2)打开excel文档——自己可定义是新建一个文档或者打开一个存在的excel文档
3)指定要操作的sheet
4)从excel中读取数据或者向excel中写入数据
5)保存excel文档
接下来,我们按照步骤给出代码。
注:先在VS中添加程序集Microsoft.Office.Interop.Excel.dll
使用VS创建一个控制台应用程序
实例1(已经过本人验证,可以运行):
//引用命名空间
using System.Reflection;
using Excel = Microsoft.Office.Interop.Excel;
namespace WriteExcelDemo2
{
class Program
{
static void Main(string[] args)
{
//创建Applicaton对象
Excel.Application xApp = new Excel.Application();
xApp.Visible = true;
#region 打开excel文档
//得到workbook对象,可以用两种方式之一:下面是打开已有的excel文件
Excel.Workbook xBook = xApp.Workbooks.Open(@"E:\7_PictureStatTool\Sample.xls",
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//Excel.Workbook xBook = xApp.Workbooks.Add(Missing.Value); //新建一个excel文件的代码
#endregion
//指定要操作的Sheet,两种方式:
Excel.Worksheet xSheet = xBook.Sheets[1];
//Excel.Worksheet xSheet = xApp.ActiveSheet;
//读取数据,通过Range对象
Excel.Range rng1 = xSheet.get_Range("A1", Type.Missing);
if(rng1.Value2 != null)
Console.WriteLine(rng1.Value2);
//读取数据,通过Range对象,但使用不同的接口得到Range
Excel.Range rng2 = (Excel.Range)xSheet.Cells[1,3]; //得到第1行第3列的值 cells[行,列]
if(rng2.Value2 != null)
Console.WriteLine(rng2.Value2);
//写入数据,将数据写入到指定的单元格
//Excel.Range rng3 = xSheet.get_Range("C6", Missing.Value); //C6单元格
//rng3.Value2 = "Hello";
//rng3.Interior.ColorIndex = 6; //设备Range的背景色
//动态写入数据,将数据写入到不同的单元格
int i = 0;
for (i = 1; i < 10; i++)
{
Excel.Range rng4 = (Excel.Range)xSheet.Cells[2, i];
rng4.Value2 = i;
rng4.Interior.ColorIndex = 6; //设备Range的背景色
}
//保存方式一:保存WorkBook
xBook.SaveAs(@"E:\7_PictureStatTool\Data1.xls", Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//保存方式二:保存WorkSheet
xSheet.SaveAs(@"E:\7_PictureStatTool\Data2.xls", Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value);
//保存方式三:
xBook.Save();
xSheet = null;
xBook = null;
xApp.Quit(); //这一句非常重要,否则Excel对象不能从内存中退出
xApp = null;
Console.ReadKey();
}
}
}
实例2
步骤:1)创建一个Windows控制台应用程序,命名为WriteExcelDemo
2)添加对Microsoft Excel 12.0 Object Library的引用
3) 在Program.cs文件中添加如下引用
4)直接修改“Program.cs”文件的代码如下
object path; //文件路径变量
MSExcel.Application excelApp; //Excel应用程序变量
MSExcel.Workbook excelDoc; //Excel文档变量
path = @"C:\MyExcel.xls"; //excl文档保存路径
excelApp = new MSExcel.Application(); //初始化
//如果已存在,则删除
if(File.Exists((string)path))
{
File.Delete((string)path);
}
//由于使用的是COM库,因此有许多变量需要用Missing.Value,所以用定义一个Nothing代替,方便后续使用
object Nothing = Missing.Value;
excelDoc = excelApp.Workbooks.Add();
//使用第一个工作表作为插入数据的工作表
MSExcel.Worksheet ws = (MSExcel.Worksheet)excelDoc.Sheets[1];
//声明一个MSExcel.Range类型的变量rng
MSExcel.Range rng;
//获得A1处的表格,并赋值
rng = ws.get_Range("A1", "A1");
rng.Value2 = "数据";
//获得A1处的表格,并赋值
rng = ws.get_Range("A2", "A2");
rng.Value2 = "hello";
object format = MSExcel.XLFileFormat.xlWorkbookDefault;
//将excelDoc文档对象的内容保存为XLSX文档
excelDoc.SaveAs(path, format, Nothing, Nothing, Nothing, Nothing, MSExcel.XlSaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);
//关闭excelDoc文档对象
excelDoc.Close(Nothing, Nothing, Nothing);
//关闭excelApp组件对象
excelApp.Quit();
Console.WriteLine(path + "创建完毕!");
}
}