在VS2017的MFC中用CApplication、CWorkbook、CWorksheet类将数组数据存入EXCEL表格里的完整代码
时间: 2024-03-26 10:40:37 浏览: 28
以下是一个简单的示例代码,可以将一个二维数组的数据存储到一个名为“Sheet1”的Excel工作表中:
```cpp
#include "stdafx.h"
#include <afxdisp.h>
int main()
{
// 初始化MFC
AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0);
// 创建Excel应用程序对象
COleException e;
if (!AfxOleInit())
{
AfxMessageBox(_T("Failed to initialize OLE!"));
return 1;
}
// 创建Excel应用程序对象
CApplication app;
if (!app.CreateDispatch(_T("Excel.Application"), &e))
{
AfxMessageBox(_T("Failed to create Excel application!"));
return 1;
}
// 打开Excel工作簿
CWorkbook book;
book.AttachDispatch(app.get_Workbooks()->Add(), TRUE);
// 获取第一个工作表
CWorksheet sheet;
sheet.AttachDispatch(book.get_ActiveSheet(), TRUE);
// 定义一个二维数组
double data[3][3] = {
{1.0, 2.0, 3.0},
{4.0, 5.0, 6.0},
{7.0, 8.0, 9.0}
};
// 将数据写入工作表
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
CString cell;
cell.Format(_T("%f"), data[i][j]);
sheet.get_Range(COleVariant(cell), COleVariant(cell)).put_Value2(data[i][j]);
}
}
// 保存并关闭工作簿
book.SaveAs(COleVariant(_T("C:\\data.xlsx")));
book.Close();
// 退出Excel应用程序
app.Quit();
return 0;
}
```
请注意,您需要将`stdafx.h`和`afxdisp.h`头文件添加到您的项目中,并将`ole32.lib`和`oleaut32.lib`库文件添加到您的编译器设置中。此外,您需要根据您的实际情况修改代码中的文件路径和数组数据。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)