gpt4 book ai didi

c++如何将数组导出到excel

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:46:32 25 4
gpt4 key购买 nike

目前我有以下代码:

int ExportToExcel(short *data, int nof_rows, int nof_cols)
{
HRESULT hr = CoInitializeEx(0, COINIT_MULTITHREADED);
if (FAILED(hr))
{
cout << "Failed to initialize COM library. Error code = 0x" << hex << hr << endl;
return hr;
}

Excel::_ApplicationPtr pXL;
if ( FAILED( pXL.CreateInstance( "Excel.Application" ) ) )
{
cout << "Failed to initialize Excel::_Application!" << endl;
return -1;
}

Excel::_WorkbookPtr workbook = pXL->Workbooks->Add(Excel::xlWorksheet);
Excel::_WorksheetPtr pSheet= pXL->ActiveSheet;
pSheet->Name = "arr_1";

Excel::RangePtr pRange = pSheet->Cells;
for(int i=1; i<=nof_rows; i++)
for(int j=1;j<=nof_cols; j++)
pRange->Item[i][j] = *data++;

pXL->Visible=true;

return 0;
}

但是上面的实现恰好很慢..

关于如何以更有效的方式倒入阵列有什么想法吗?

最佳答案

虽然所有关于计算和可见性的答案都是正确的,但它们缺少一个关键部分:您正在遍历数据,而不是单独更新每个单元格。这很慢,因为每次都必须进行 com 调用。最好有一个分配给匹配范围的二维数组。

它是这样工作的:定义你的二维数组将范围对象设置为匹配大小(行数/列数)将您的数组分配给范围对象:range.value=2darray完成!

此技术适用于 .net 和 c# - 我不知道如何在 C++ 中构建它,抱歉!

就是说:与您的解决方案相比,它会很快 - 但是,尤其是对于大文件,它仍然会很慢 - 最好使用 excel 库。

关于c++如何将数组导出到excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14937337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com