You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.5 KiB
100 lines
2.5 KiB
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <conio.h>
|
|
#include <time.h>
|
|
#include "libxl.h"
|
|
|
|
const int maxRow = 20000;
|
|
const int maxCol = 256;
|
|
|
|
wchar_t* makeString()
|
|
{
|
|
static wchar_t s[9] = {0};
|
|
int i;
|
|
|
|
for(i = 0; i < 8; ++i) {
|
|
s[i] = 0x61 + rand() % 26;
|
|
}
|
|
|
|
return s;
|
|
}
|
|
|
|
void test(int number)
|
|
{
|
|
BookHandle book;
|
|
SheetHandle sheet;
|
|
clock_t t1, t2, t3;
|
|
int row, col;
|
|
double d, n;
|
|
|
|
printf("---------------------------------\n");
|
|
if(number == 1) {
|
|
printf(" strings \n");
|
|
} else {
|
|
printf(" numbers \n");
|
|
}
|
|
printf("---------------------------------\n");
|
|
|
|
book = xlCreateBook();
|
|
if(book) {
|
|
sheet = xlBookAddSheet(book, L"Sheet1", 0);
|
|
if(sheet) {
|
|
printf("writing %d cells... ", (maxRow - 1) * maxCol);
|
|
t1 = clock();
|
|
if(number == 1) {
|
|
for(row = 1; row < maxRow; ++row) {
|
|
for(col = 0; col < maxCol; ++col) {
|
|
xlSheetWriteStr(sheet, row, col, makeString(), 0);
|
|
}
|
|
}
|
|
} else {
|
|
for(row = 1; row < maxRow; ++row) {
|
|
for(col = 0; col < maxCol; ++col) {
|
|
xlSheetWriteNum(sheet, row, col, 1234, 0);
|
|
}
|
|
}
|
|
}
|
|
printf("ok\n");
|
|
t2 = clock();
|
|
d = (double)(t2 - t1) / CLOCKS_PER_SEC;
|
|
printf("time: %.3f sec\n", d);
|
|
if(d > 0) {
|
|
n = (maxRow - 1) * maxCol / d;
|
|
printf("speed: %d cells/sec\n", (int)n);
|
|
}
|
|
printf("\n");
|
|
|
|
printf("saving... ");
|
|
if(number == 1) {
|
|
xlBookSave(book, L"perfstr.xls");
|
|
} else {
|
|
xlBookSave(book, L"perfnum.xls");
|
|
}
|
|
printf("ok\n");
|
|
t3 = clock();
|
|
printf("time: %.3f sec\n\n", (double)(t3 - t2) / CLOCKS_PER_SEC);
|
|
|
|
printf("total time: %.3f sec\n", (double)(t3 - t1) / CLOCKS_PER_SEC);
|
|
d = (double)(t3 - t1) / CLOCKS_PER_SEC;
|
|
if(d > 0) {
|
|
n = (maxRow - 1) * maxCol / d;
|
|
printf("speed with saving on disk: %d cells/sec\n", (int)n);
|
|
}
|
|
printf("\n");
|
|
}
|
|
|
|
xlBookRelease(book);
|
|
}
|
|
}
|
|
|
|
|
|
int main()
|
|
{
|
|
test(0);
|
|
test(1);
|
|
|
|
printf("\nPress any key to exit...");
|
|
_getch();
|
|
|
|
return 0;
|
|
}
|
|
|