[建议使用NOPI 第三方组件来操作EXCEL! NOPI是直接生成原生的EXCEL文件,所以不用安装EXCEL] NOPI 官网: http://npoi.codeplex.com/
C#中要操作EXCEL 可以通过.NET组件提供的功能
在visual studio中右键单击【解决方案】中的【引用】,添加一个引用【Microsoft.Office.Interop.Excel】 只要安装了EXCEL就有这个组件
EXCEL中索引是从1开始的!
object missing = Missing.Value;
// 创建Excel对象
Microsoft.Office.Interop.Excel.Application myExcel = new Microsoft.Office.Interop.Excel.Application();
//打开Excel文件
Workbook myBook = myExcel.Application.Workbooks.Open(filename, missing, missing, missing,
missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing);
//对EXCEL的操作是否可见
myExcel.Visible = false;
//得到工作表
Worksheet mySheet = (Worksheet)myBook.Worksheets[sheetNum];
//得到一个单元格
Microsoft.Office.Interop.Excel.Range range = (Microsoft.Office.Interop.Excel.Range)mySheet.Cells[1, 1];
//得到一个单元格的值
range.Text
//得到工作表的行总数
mySheet.Cells.CurrentRegion.Rows.Count 或 mySheet.UsedRange.Rows.Count (使用了的行)
//得到工作表的列总数
mySheet.Cells.CurrentRegion.Columns.Count 或 mySheet.UsedRange.Rows.Count
//工作表的个数
myExcel.SheetsInNewWorkbook = 1
//添加新工作簿
Workbook m_Book = (Workbook)(myExcel.Workbooks.Add(Missing.Value))
//得到一个范围、区域 ***
Excel.Range range = mySheet.get_Range(mySheet.Cells[1, 1], mySheet.Cells[1, 2]);
range.r.Select() //选择
range.MergeCells = true; //合并单元格
range.Font.Bold = true; //加粗单元格内字符
//退出Excel文件
myExcel.Quit();
//释放EXCEL的进程
System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName("EXCEL");
foreach (System.Diagnostics.Process instance in myProcesses)
{
instance.Kill();
}
//释放回收资源
GC.Collect();