C#操作Excel可以分为客户端和插件版本,区别就是是否需要Excel环境,功能实现一样
一、通用操作与处理(有点乱有时间再整理)
1:工程对excel类库的导入,如:
c:program filesMicrosoft officeoffiece11excel.exe
2:命名控件的引入:
using Microsoft.office.Interop.Excel;
3:如果是对一个已经存在的excel文件进行操作则:
Application app=new Application();
Workbook wbook=app.Workbooks.Open("c:\temp.xls",Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);
//C#6.0后面的参数可以省略
Worksheet worksheet=(Worksheet)wbook.Worksheets[1];
4:新建一个excel文件:
Application app=new Application();
Workbook wbook=app.Workbooks.Add(Type.missing);
Worksheet worksheet=(Worksheet)wbook.Worksheets[1];
5:设置某个单元格里的内容:
worksheet.Cells[1,2]="列内容";
6读取某个单元格里的内容
string temp=((Range)worksheet.Cells[1,2]).Text;
7设置某个单元格里的格式
Microsoft.Office.Interop.Excel.Range rtemp=worksheet.get_Range("A1","A1");
rtemp.Font.Name="宋体";
rtemp.Font.FontStyle="加粗";
rtemp.Font.Size=5;
//设置颜色
rtemp.Interior.Color = ColorTranslator.ToOle(Color.DodgerBlue);
8 保存新建的内容:
worksheet.SaveAs("c:\temp.xls",Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing, Type.Missing);
二、其他备注
一、 给表格数据赋特殊值:
Cells[18, 8] = "=SUM(D5:D17)";
二、进行一些表格合并操作:
下次进行补充哈
三、获取有范围的行和列
int k1=worksheet.UsedRange.Rows.Count;
获取列只需要将Rows修改为Columns
四、 判断有没有公式:
sheet.Cells[i, j].HasFormula
五、 遍历Excel:(最好加=号,下面会遗漏边界)
Workbook book = app.Workbooks.Open(file.FullName);
foreach (Worksheet sheet in book.Worksheets)
{
for (int i = 1; i < sheet.UsedRange.Rows.Count; i++)
{
for (int j = 1; j < sheet.UsedRange.Columns.Count; j++)
//此处进行函数操作
}
}
本人承接一些程序开发项目(能力范围内,例如Office开发和C#网络爬虫,数据库读写等)欢迎联系洽谈,QQ207708848,请注明来意。
更多内容还可以参考官方API