DotNet 操纵Excel总结之一

     前段时间,做项目的时候,要操纵 Excel ,从网上找了些资料,结合自己用的例子,现在总结一下在 DoNet 下操纵 Excel 的方法。

一.
生成 Excel.dll 的方法
    利用 DotNet 中自带的工具在命令提示符下执行 tlbimp excel.exe. 这样就不会因为你的 Excel xp 2000 的不同要去找不同的 *.olb 文件,还有一点就是因为在 2000 以后的版本中没有了 excel9.olb 这个文件了。
    通过执行 tlbimp excel.exe 后我们会得到 excel.dll 文件。
    只要有了这个 Excel.dll ,现在我们就能使用 Excel 的各种操作函数了。

 

二.基本操作
1.创建Application对象
Excel.Application xlsApp = new Excel.Application();
if (xlsApp == null)
{
    return;
}

2
.得到WorkBook对象, 可以用两种方式
//之一: 打开已有的文件
Excel.Workbook xlsBook = xlsApp.Workbooks.Open(@"E:\\test.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 xlsBook = xlsApp.Workbooks.Add(Missing.Value);

3
.指定要操作的Sheet,两种方式
//之一:
Excel.Worksheet xlsSheet = (Excel.Worksheet)xlsBook.Sheets[1];
Excel.Worksheet xlsSheet = (Excel.Worksheet)xlsBook.Sheets["Sheet1"];
//之二:
Excel.Worksheet xlsSheet = (Excel.Worksheet)xlsApp.ActiveSheet;

 

4 .指定单元格,读取数据,两种方法
// 之一:
Excel.Range range1 = xlsSheet.get_Range("C2", Type.Missing);
string temp1 = range1.Value2;
// 之二:
Excel.Range range2 = (Excel.Range)xlsSheet.Cells[2, 3];
string temp2 = range2.Value2;

 

5 .在单元格中写入数据
Excel.Range range3 = xlsSheet.get_Range("A1", Type.Missing);
range3.Value2 = "Hello World!";
range3.Borders.Color = Color.FromArgb(123, 231, 32).ToArgb();
range3.Font.Color = Color.Red.ToArgb();
range3.Font.Name = "Arial";
range3.Font.Size = 9;
range3.Columns.HorizontalAlignment = Excel.Constants.xlCenter;
range3.VerticalAlignment = Excel.Constants.xlCenter;
range3.Interior.Color = Color.FromArgb(192, 192, 192).ToArgb();
range3.Columns.AutoFit();//adjust the column width automatically

 

6 .在某个区域写入数据数组
int matrixHeight = 20;
int matrixWidth = 20;
string [,] martix = new string[matrixHeight, matrixWidth];
for (int i = 0; i < matrixHeight; i++)
{
    for (int j = 0; j < matrixWidth; j++)
    {
        martix[i, j] = String.Format("{0}_{1}", i + 1, j + 1);
    }
}
string startColName = GetColumnNameByIndex(0);
string endColName = GetColumnNameByIndex(matrixWidth - 1);

 

7 .设置 column row 的宽度和颜色
int columnIndex = 3;
int rowIndex = 3;
string colName = GetColumnNameByIndex(columnIndex);
xlsSheet.get_Range(colName + rowIndex.ToString(), Type.Missing).Columns.ColumnWidth = 20;
xlsSheet.get_Range(colName + rowIndex.ToString(), Type.Missing).Rows.RowHeight = 40;
// 单格颜色
xlsSheet.get_Range(colName + rowIndex.ToString(), Type.Missing).Columns.Interior.Color =
olor.Blue.ToArgb();
// 第行到第行的颜色
xlsSheet.get_Range(5 + ":" + 7, Type.Missing).Rows.Interior.Color = Color.Yellow.ToArgb();
// n列的颜色
xlsSheet.get_Range("G : G", Type.Missing).Columns.Interior.Color = Color.Pink.ToArgb();

 

8 .保存,关闭
if (File.Exists(@"E:\test1.xls"))
{
    File.Delete(@"E:\test1.xls");
}
xlsBook.SaveAs(@"E:\test1.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
xcel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
xlsBook.Close(false, Type.Missing, Type.Missing);
xlsApp.Quit();

 

9 .彻底退出 Excel
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsApp);

 

xlsSheet = null;
xlsBook = null;
xlsApp = null;

 


GC
.Collect();

转载于:https://www.cnblogs.com/jay-xu33/archive/2008/04/02/1135255.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值