//エクセルがインストールされている #include #include int main(int argc, char *argv[]) { HMODULE mexcelcli = LoadLibrary("excelcli101.dll"); if (mexcelcli == NULL) { printf("excelcli101.dllをロードできません\r\n"); exit(1); } int(__cdecl * loaddll)(); loaddll = (int(__cdecl*)())GetProcAddress(mexcelcli, "loaddll"); if (loaddll() != 0) { printf("excelcs101.dllをロードできません\r\n"); FreeLibrary(mexcelcli); exit(1); } int(__cdecl * opnexcel)(int); opnexcel = (int(__cdecl *)(int))GetProcAddress(mexcelcli, "opnexcel"); int(__cdecl * opnbook)(char *); opnbook = (int(__cdecl *)(char *))GetProcAddress(mexcelcli, "opnbook"); int(__cdecl * opnsheet)(char *); opnsheet = (int(__cdecl *)(char *))GetProcAddress(mexcelcli, "opnsheet"); int(__cdecl * wcellval)(int,int,int); wcellval = (int(__cdecl *)(int,int,int))GetProcAddress(mexcelcli, "wcellval"); int(__cdecl * wcellstr)(int,int,char *); wcellstr = (int(__cdecl *)(int,int,char *))GetProcAddress(mexcelcli, "wcellstr"); char *(__cdecl * rcell)(int,int,char *); rcell = (char *(__cdecl *)(int,int,char *))GetProcAddress(mexcelcli, "rcell"); int(__cdecl * savebook)(char *); savebook = (int(__cdecl *)(char *))GetProcAddress(mexcelcli, "savebook"); int(__cdecl * clssheet)(); clssheet = (int(__cdecl *)())GetProcAddress(mexcelcli, "clssheet"); int(__cdecl * clsbook)(); clsbook = (int(__cdecl *)())GetProcAddress(mexcelcli, "clsbook"); int(__cdecl * clsexcel)(); clsexcel = (int(__cdecl *)())GetProcAddress(mexcelcli, "clsexcel"); char* (__cdecl * cdirectory)(char *); cdirectory = (char* (__cdecl *)(char *))GetProcAddress(mexcelcli, "cdirectory"); int(__cdecl * keisen01)(int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int); keisen01 = (int(__cdecl *)(int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int))GetProcAddress(mexcelcli, "keisen01"); //左上セル(例3, 2), 右下セル(例8, 8), 上辺の線種, 太さ, 色(例255, 0, 0), 下辺の線種, 太さ, 色(例0, 255, 0), //左辺の線種, 太さ, 色(例0, 0, 255), 右辺の線種, 太さ, 色(例0, 0, 0) //線種 0:罫線なし1:xlContinuous 2 : xlDash 3 : xlDashDot 4 : xlDashDotDot 5 : xlDot 6 : xlDouble 7 : xlSlantDashDot //太さ(線種によって設定できないものがある)1 : xlHairline 2 : xlThin 3 : xlMedium 4 : xlThick int(__cdecl * keisen02)(int, int, int, int, int, int, int, int, int, int); keisen02 = (int(__cdecl*)(int, int, int, int, int, int, int, int, int, int))GetProcAddress(mexcelcli, "keisen02"); //左上セル(例3, 8), 右下セル(例8, 8), 右下がり斜線(0:なし 1 : あり), 右上がり斜線(0 : なし 1 : あり), 太さ, 色(例255, 0, 0) //太さ1 : xlHairline 2 : xlThin 3 : xlMedium 4 : xlThick int(__cdecl * cellmrg)(int, int, int, int); cellmrg = (int(__cdecl *)(int, int, int, int))GetProcAddress(mexcelcli, "cellmrg"); if (opnexcel(1) != 0) { printf("excel.exeをオープンできません\r\n"); FreeLibrary(mexcelcli); exit(1); } char* file01 = (char*)malloc(100); if (file01 == NULL) { printf("malloc error\r\n"); FreeLibrary(mexcelcli); exit(1); } memset(file01, ' ', 99); *(file01 + 99) = '\0'; file01 = cdirectory(file01); strcat_s(file01, 100, "\\test.xlsx"); if (opnbook(file01) != 0) { printf("test.xlsxをオープンできません\r\n"); free(file01); clsexcel(); FreeLibrary(mexcelcli); exit(1); } opnsheet("sheet1"); int y = 1; int x = 1; int c = 1; while(y <= 10) { wcellval(y,x,c); x++; c++; if(x > 10) { x = 1; y++; } } char s[] = {'A','\0'}; while(y <= 16) { wcellstr(y,x,s); x++; s[0]++; if(x > 10) { x = 1; y++; } } char* str00 = (char*)malloc(100); if (str00 == NULL) { printf("malloc error\r\n"); clssheet(); clsbook(); free(file01); clsexcel(); FreeLibrary(mexcelcli); exit(1); } y = 1; x = 1; while(y <= 16) { memset(str00, ' ', 99); *(str00 + 99) = '\0'; printf("%s ",rcell(y,x,str00)); x++; if(x > 10) { printf("\r\n"); x = 1; y++; } } y = 1; while (y <= 16) { keisen01(y, 1, y, 10, 1, 1, 0, 0, 255, 1, 1, 0, 0, 255, 1, 1, 0, 0, 255, 1, 1, 0, 0, 255); y++; } x = 1; while (x <= 9) { keisen01(1, x, 16, x, 1, 1, 0, 0, 255, 1, 1, 0, 0, 255, 1, 1, 0, 0, 255, 1, 1, 0, 0, 255); x++; } keisen01(1, x, 16, x, 1, 2, 0, 0, 255, 1, 2, 0, 0, 255, 1, 2, 0, 0, 255, 1, 2, 0, 0, 255); y = 1; while (y <= 16) { keisen02(y, 10, y, 10, 0, 1, 2, 255, 0, 0); y++; } savebook(file01); free(str00); clssheet(); clsbook(); free(file01); clsexcel(); FreeLibrary(mexcelcli); return 0; }