Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 14

Создание Excel файла

28.10.2015, 15:21. Показов 2552. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! при создании файла Excel файла с расширением xls, по помощью нажатию кнопки "CreaFile", столкнулся с проблемой возникающей при его открытии: при открытии возникает предупреждение что файл имеет некорректный формат, данный файл всё же открывается, при попытке сохранения также возникают ошибки, но он всё же сохраняется, с файлами txt таких проблем нет, подскажите, пожалуйста, в чём может быть причина. Текст программы представлен ниже:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
 #include <windows.h>
#include <ctime>
 
 
/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
    static HANDLE hFile = 0; 
    static int i=0;
    
        
    switch (Message) {
    case WM_CREATE:
        CreateWindow(TEXT("button"), TEXT("CreaFile"), WS_VISIBLE | WS_CHILD,
            100, 100, 100, 100,
            hwnd, (HMENU)1, NULL, NULL
            );
        CreateWindow(TEXT("button"), TEXT("WriteFile"), WS_VISIBLE | WS_CHILD,
            250, 100, 100, 100,
            hwnd, (HMENU)2, NULL, NULL
            );
        CreateWindow(TEXT("button"),TEXT("CloseHandle"),WS_VISIBLE|WS_CHILD,350,100,100,100,
        hwnd,(HMENU)3,NULL,NULL);
        break;
    case WM_COMMAND:
        
        if (LOWORD(wParam) == 1){
        
            hFile = CreateFile("original111.xls", GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
           
    }
        else if (LOWORD(wParam) == 2){
            MessageBox(hwnd, "Writen", "", NULL);
            DWORD dwBytesWritten, nBytesRead;
            char buffer[5];
            buffer[0]='1';
            buffer[1]='\r';
            buffer[2]='\n';
 
            WriteFile(hFile, buffer, 5, &dwBytesWritten, NULL);
                
            }
            
      
        else if (LOWORD(wParam)==3)
        {
            
            i=i+1;
            
  const char oldname[30] = "C:\\Dev-Cpp\\original111.xls";
            const char newname[30]="C:\\Dev-Cpp\\original112.xls";
            MoveFile(oldname,newname);
            CloseHandle(hFile);
            if (i>3)
            {
            
            MessageBox(hwnd,"Many","",NULL);    
            }
                CloseHandle(hFile);   
    return 0;
    }
    break;
     
    
       
        
    case WM_DESTROY:
        PostQuitMessage(0);
    break;
 
    default:
        return DefWindowProc(hwnd, Message, wParam, lParam);
    }
    return 0;
}
 
/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    WNDCLASSEX wc; /* A properties struct of our window */
    HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
    MSG Msg; /* A temporary location for all messages */
 
    /* zero out the struct and set the stuff we want to modify */
    memset(&wc,0,sizeof(wc));
    wc.cbSize        = sizeof(WNDCLASSEX);
    wc.lpfnWndProc   = WndProc; /* This is where we will send messages to */
    wc.hInstance     = hInstance;
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
    
    /* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszClassName = "WindowClass";
    wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */
    wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION); /* use the name "A" to use the project icon */
 
    if(!RegisterClassEx(&wc)) {
        MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;
    }
 
    hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, /* x */
        CW_USEDEFAULT, /* y */
        640, /* width */
        480, /* height */
        NULL,NULL,hInstance,NULL);
 
    if(hwnd == NULL) {
        MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;
    }
 
    /*
        This is the heart of our program where all input is processed and 
        sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
        this loop will not produce unreasonably high CPU usage
    */
    while(GetMessage(&Msg, NULL, 0, 0) > 0) { /* If no error is received... */
        TranslateMessage(&Msg); /* Translate key codes to chars if present */
        DispatchMessage(&Msg); /* Send it to WndProc */
    }
    return Msg.wParam;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2015, 15:21
Ответы с готовыми решениями:

Создание бланка заявки в Excel на основании данных из другого файла Excel
Всем доброго времени суток! Есть у меня такая задумка в Excel, может быть кто-нибудь сталкивался с подобной необходимостью и добился...

Большая работа с Excel (передача в него данных, построение графиков, дозапись, создание нового файла Excel)
Всем участниками большой привет. Снова нужна помощь. Что имеем: -Имеем форму во вложении. на ней есть 30 нужных нам текстбоксов,...

Создание файла excel
Здравствуйте. У меня возникла такая проблема. Возникла необходимость отправлять данные в файл excel. Поюзав немного в google понял, что...

2
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
28.10.2015, 18:07
Всё дело в том, что одного расширения в имени файла мало. А точнее, само расширение не имеет для открывающей его программы никакого значения. Здесь важна сама его структура или как там его, его заголовок для нее. Упомянутый .txt это вообще просто занятое место на диске, поэтому с ним и проблем нет. С форматом файлов Экселя к сожалению не знаком.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
28.10.2015, 22:13
Цитата Сообщение от Digit@ll Посмотреть сообщение
С форматом файлов Экселя, к сожалению, незнаком

Не по теме:

Ваше счастье :-)

MS Office использует собственную FS для хранения большого числа разнородных данных.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2015, 22:13
Помогаю со студенческими работами здесь

Создание XML-файла из Excel
Есть excel файл &quot;Тест.xls&quot;, XSD схема VO_CIK_CB_7.txt. как на основе этого сделать xml -файл?

Создание файла Excel. Библиотеки
Здравствуйте. Работаю над консольным приложение, хочу реализовать создание листа Excel (или Word) и работать непосредственно уже с его...

Создание файла из листа Excel
Возникла необходимость создавать файлы с разными названиями из шаблонного листа. Знаю как это сделать обычным способом, но немного длинный...

Создание файла Excel в двоичном виде
Здравствуйте! Кто-нибудь знает как создать файл Excel, работая с ним как с обычным двоичным файлом? У меня есть пример для...

создание Excel-файла с плавающим именем
Добрый день! Обчитался helpы VBA - не найду в общем, есть файл, в котором во время выполнения макроса данные фильтруются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru