C#和VC++读写单元格写代码对比
·
实现对比分析
-
对象模型:
- C#使用
Microsoft.Office.Interop.Excel命名空间 - VC++通过COM接口和
#import指令导入类型库
- C#使用
-
语法差异:
- C#采用点运算符访问成员(如
worksheet.Range) - VC++使用箭头运算符(如
worksheet->Range)
- C#采用点运算符访问成员(如
-
数据类型处理:
- C#自动转换VARIANT类型
- VC++需显式使用
_variant_t包装数据
-
资源释放:
- 两者均需显式关闭工作簿和应用对象
- VC++需额外处理COM资源
注意事项
- C#项目需添加
Microsoft.Office.Interop.Excel引用 - VC++需确保Office PIA组件安装
- 两者均依赖本地安装的Excel应用程序
using Excel = Microsoft.Office.Interop.Excel;
// 读取A1单元格
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Open(@"C:\Test.xlsx");
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets[1];
string cellValue = worksheet.Range["A1"].Value.ToString();
// 写入B2单元格
worksheet.Range["B2"].Value = "New Value";
workbook.Save();
workbook.Close();
excelApp.Quit();
#import "C:\\Program Files\\Microsoft Office\\Office16\\EXCEL.EXE"
// 读取A1单元格
Excel::_ApplicationPtr excelApp;
excelApp.CreateInstance(__uuidof(Excel::Application));
Excel::WorkbooksPtr workbooks = excelApp->Workbooks;
Excel::_WorkbookPtr workbook = workbooks->Open(L"C:\\Test.xlsx");
Excel::_WorksheetPtr worksheet = workbook->Worksheets->Item[1];
_variant_t cellValue = worksheet->Range["A1"]->Value;
// 写入B2单元格
worksheet->Range["B2"]->Value = _variant_t("New Value");
workbook->Save();
workbook->Close();
excelApp->Quit();
更多推荐



所有评论(0)