double Weight_NDist[NW_M][NW_N][4] = {0.0};
for (i = 0; i < NW_M; i++)
for (j = 0; j < NW_N; j++)
for (k = 0; k < 4; k++) {
Weight_NDist[i][j][k] = arrNetworkSL[i][j].Nindex[k];
printf("\n\t[%d]: %lf\n", a + 1, Weight_NDist[i][j][k]);
a++;
}
strcpy(path, "Excel\\Weight_NDist.xlsx");
strcpy(sheetName, "Weight");
mywriteDataBlock(Weight_NDist, NW_M, NW_N, 4, path, sheetName);
// copy the excel file to Artifact folder
system("echo Source Data Folder: %CD%");
sprintf(cmd, "copy \"%s\" \"Artifact\\Weight_NDist(b=%.2f_k=%.2f_v=%.2f_del=%.2f_DEL=%.2f)_T(%d-%d)_SL(%d-%d).xlsx\">nul", path, b, kappa, v, del, DEL, 1, mcsTime, NW_N, NW_M); system(cmd);
printf("\tDestination Data File:\n");
printf("\t Artifact\\Weight_NDist(b=%.2f_k=%.2f_v=%.2f_del=%.2f_DEL=%.2f)_T(%d-%d)_SL(%d-%d).xlsx\n", b, kappa, v, del, DEL, 1, mcsTime, NW_N, NW_M);
int mywriteDataBlock(double pData[][NW_N][4], int m, int n, int h, char* fullPath, char* sheetName)
{
int i, j,k;
/*** mbstowcs --------------------------------------*/
setlocale(LC_ALL, "zh_CN.UTF-8");
wchar_t wFullPath[256] = { '\0' };
wchar_t wSheetName[256] = { '\0' };
mbstowcs(wFullPath, fullPath, strlen(fullPath));
mbstowcs(wSheetName, sheetName, strlen(sheetName));
/*** write data --------------------------------------*/
// Book* book = xlCreateBook(); // for .xls file
Book* bookTemp = xlCreateXMLBook(); // xlCreateXMLBook() for .xlsx file
// unlock the dll by the key
bookTemp->setKey(L"Michael Hillier", L"windows-222329040ec5ec046fb46767a7h1gej6");
if (bookTemp)
{
Sheet* sheetTemp = bookTemp->addSheet(wSheetName);
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
for (k = 0; k < h; k++)
sheetTemp->writeNum(i + 1, j + 1, pData[i][j][k]);
}
}
}
// bookTemp->save(wFullPath);
bookTemp->save(wFullPath);
bookTemp->release();
return EXIT_SUCCESS;
}
Weight_NDist存了40000个数,打印也能打印出40000个
但是用mywriteDataBlock函数写入excel就只有10000个数,到底是为什么啊