前面的问题,根据微软的文档是兼容性问题造成的,也就是说2007存在兼容性的问题,具体见http://support.microsoft.com/kb/928499/zh-cn
也可以使用模板来避免新建Excel文件;
还有可以从Excel.Exe来生成Excel.DLL
方法是打开2005控制台,然后进入Office12(根据机器的版本文件夹可能不同)路径下,键入“tlbimp Excel.Exe /out:Excel.Dll 生成的这个DLL可以象自定义的类库DLL一样引入!
接着继续Excel的操作:
读取Excel的单元格的值
Cells[RowIndex,ColIndex].Text
填写单元格的值
Range r3 = (Range)worksheet.Cells[3, 1];
r3.set_Value(XlRangeValueDataType.xlRangeValueDefault, "AAAAAA");
r3.Formula = "123213";
r3.Value2 = "‘123213";
上面3种方法都可以填上值,第一个是文本,第二个是数字,第三个是文本形式的数字(注意多了一个')
还有更直接的写法:app.Cells[1,1] = "22313s";
填写注释
r3.AddComment("This is a test");
插入一行:
r3.EntireRow.Insert(oMissing, oMissing);
效果是r3下移,没有网上所说的15行限制的问题,我插入了40多都没问题;
插入列
r3.EntireColumn.Insert(oMissing, oMissing);
效果是r3所在列后移
清空单元格
r3.ClearContents();
清除注释
r3.ClearComments();
删除r3所在行
r3.EntireRow.Delete(oMissing);
删除r3所在列
r3.EntireColumn.Delete(oMissing);
边框和颜色相关
设置边框
r3.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexNone, -65535);
XlColorIndex这个参数决定了边框的颜色,而最后的COLOR怎么设置都没效果
XlBorderWeight 这个参数决定边框的粗细
XlLineStyle 这个参数决定边框的样式(虚线等等)
设置上(下左右)边框
r3.Borders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThin;
XlBordersIndex 决定了是哪个边框
设置单元格背景色为红色
r3.Interior.Color = 255;
设置字体
r3.Font 有颜色,字体,大小等;
最后是单元格合并
Range r1 = (Range)worksheet.Cells[2, 1];
Range r2 = (Range)worksheet.Cells[3, 1];
Range r3 = worksheet.get_Range(r, r1);
r3.Merge(0);
合并好的单元格也可以分开
r3.UnMerge();
怎么知道单元格的构成呢?
r3.Rows.Count 就是行数;
r3.Columns.Count 就是列数