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

Подскажите, пожалуйста, как преобразовать данные из excel в string или в char*, char perm [] в visual c++

31.03.2016, 01:12. Показов 1160. Ответов 1

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как преобразовать данные из excel в string или в char*, char perm []
также для вывода на экран
среда visual c++
вот код
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
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
#include "string"
#define _WIN32_DCOM
 
#import "C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\MSO.DLL"
#import "C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\Program Files (x86)\Microsoft Office\OFFICE14\EXCEL.EXE" \
    rename("DialogBox","_DialogBox") \
    rename("RGB","_RGB") \
    exclude("I","IPicture")
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::cout<<"Hello, World"<<std::endl;
    
    // Инициализируем  COM 
    ::CoInitialize(NULL);
    
    Excel::_ApplicationPtr pAppExcel;
    Excel::_WorkbookPtr pBook;
 
    //открываем Excel
    HRESULT hRes = E_FAIL;
    hRes = pAppExcel.CreateInstance(L"Excel.Application");
    if ( FAILED(hRes) )     
        ::MessageBox(NULL, L"Excel не найден!", L"Ошибка", MB_OK);
 
    //делаем его видимым
    pAppExcel->Visible[0] = true;
 
    //открываем файл L"c:\1.xls"
    _variant_t  varOption(static_cast<long>(DISP_E_PARAMNOTFOUND), VT_ERROR);
    pBook = pAppExcel->Workbooks->Open(
        "c:\\1.xls", 
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption);
    
    //получаем первый лист    
    Excel::_WorksheetPtr pFirstsheet;
    pFirstsheet = pBook->Worksheets->Item[1L];
    
    //делаем первый лист активным
    pFirstsheet->Activate();    
    // заполняем ячейку "A1"
    pFirstsheet->Range["A1"]->Value2= variant_t("Текст");
     
    //заполняем "E1"
    Excel::RangePtr pRange = pFirstsheet->Cells;
    Excel::RangePtr pCell;
    pCell = pRange->Item[1][5];
    pCell->Value2 = "Текст";
 
    //считываем "A2"
    Excel::RangePtr pCell2;
    pCell2 = pRange->Item[2][1];
    
    variant_t Val = pCell2->Value2;
    //std::string d = Val.cVal;
    //std::cout<<d<<std::endl;
 
    //считываем "A3"
    Excel::RangePtr pCell3;
    pCell3 = pRange->Item[3][1];
    
    _variant_t Val2 = pCell3->Value2;
//  char * s = Val2.cVal;
//  std::cout<<s<<std::endl;
 
    //сохраняем документ
    pBook->Save();
 
    //закрываем документ
    pBook->Close();
 
    //закрываем Excel
    pAppExcel->Quit();
    
    // Закрываем COM 
    ::CoInitialize(NULL);
 
    system("pause");
    return 0;
}
В заранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.03.2016, 01:12
Ответы с готовыми решениями:

TinyXML. Преобразовать TiXmlElement в TiXmlString, char[] или string
Вообщем-то, задача проста (для тех, кто работал с библиотекой TinyXML). Но я первый раз с ней работаю, и вообще первый раз со сторонними...

Преобразовать const unsigned char* в std::string (или _bstr_t )
Здравствуйте старшие товарищи! Есть функция, которая возвращает результат типа const unsigned char*. а мне нужно получить ...

Как можно считывать из строки (std::string или char*) данные при помощи cin
Как можно считывать из строки (std::string или char*) данные при помощи cin (или может есть какой-нибудь поток-обертка?), как sscanf из...

1
0 / 0 / 1
Регистрация: 29.03.2016
Сообщений: 5
01.04.2016, 23:23  [ТС]
Нашел решение. ком интересен рабочий код екселя + мискл вот
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
123
124
125
126
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <my_global.h> 
#include <mysql.h>
#include "iostream"
#include "string"
using namespace std;
 
#pragma comment(lib, "libmysql.lib") // подключаем библиотеку
 
 
 
#define _WIN32_DCOM
 
#import "C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\MSO.DLL"
#import "C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\Program Files (x86)\Microsoft Office\OFFICE14\EXCEL.EXE" \
    rename("DialogBox","_DialogBox") \
    rename("RGB","_RGB") \
    exclude("I","IPicture")
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "[COLOR="DarkOrchid"].1251[/COLOR]");
    std::cout<<"Hello, World"<<std::endl;
    
    // Инициализируем  COM 
    ::CoInitialize(NULL);
    
    Excel::_ApplicationPtr pAppExcel;
    Excel::_WorkbookPtr pBook;
 
    //открываем Excel
    HRESULT hRes = E_FAIL;
    hRes = pAppExcel.CreateInstance(L"Excel.Application");
    if ( FAILED(hRes) )     
        ::MessageBox(NULL, L"Excel не найден!", L"Ошибка", MB_OK);
 
    //делаем его видимым
    pAppExcel->Visible[0] = true;
 
    //открываем файл L"c:\1.xls"
    _variant_t  varOption(static_cast<long>(DISP_E_PARAMNOTFOUND), VT_ERROR);
    pBook = pAppExcel->Workbooks->Open(
        L"c:\\tur\\1.xls", 
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption,
        varOption);
    
    //получаем первый лист    
    Excel::_WorksheetPtr pFirstsheet;
    pFirstsheet = pBook->Worksheets->Item[1L];
    
    //делаем первый лист активным
    pFirstsheet->Activate();
    Excel::RangePtr pRange = pFirstsheet->Cells;
    Excel::RangePtr pCell3;
    pCell3 = pRange->Item[2][1];
    MYSQL mysql; // Дескриптор соединения
    char host[] = "localhost"; // хост
    char user[] = "root"; // пользователь
    char passwd[] = ""; // пароль
    char db[] = "pk"; // название базы данных
    int port = 0; //  порт. Если порт у сервера MySQL не по умолчанию (3306), то нужно указывать конкретный номер порта
    mysql_init(&mysql);  // Инициализация
    mysql_real_connect(&mysql, host, user, passwd, db, port, NULL, 0); // соединение
    int i=2;
    while(i<9){
        const char * s;
        std::string s1;
        std::string s2;
        std::string s3;
        std::string s4;
        pCell3 = pRange->Item[i][1];
        _variant_t Val2 = pCell3->Value2;
        s1= (char *)(_bstr_t)Val2;
        pCell3 = pRange->Item[i][2];
        Val2 = pCell3->Value2;
        s2= (char *)(_bstr_t)Val2;
        pCell3 = pRange->Item[i][3];
        Val2 = pCell3->Value2;
        s3= (char *)(_bstr_t)Val2;
        s4="INSERT INTO  `pk`.`std` (`id_std` ,`surname` ,`name` ,`secondname`)VALUES (NULL ,  '"+s1+"',  '"+s2+"',  '"+s3+"');";
        s=s4.c_str();
        if (mysql_query(&mysql, s) > 0) // запорс. Если ошибок нет, то продолжаем работу
        {
            std::cout<<"no cool"<<std::endl<<s4<<std::endl;
            // Если была ошибка, ...
//          MessageBox(mysql_error(&mysql));  // ... вывдем ее
             // и завершим работу
        } 
        else 
        {
            std::cout<<"cool"<<std::endl<<s4<<std::endl;
        }
        i++;
    }
 
 
 
    //сохраняем документ
    pBook->Save();
 
    //закрываем документ
    pBook->Close();
 
    //закрываем Excel
    pAppExcel->Quit();
    
    // Закрываем COM 
    ::CoInitialize(NULL);
 
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.04.2016, 23:23
Помогаю со студенческими работами здесь

Как преобразовать char* в string и вывести переменную string на экран?
for (int k = 0; k &lt; 10; k++) { int x = (int)rand() / RAND_MAX + rand() % 6 + 2; char *chars = new char; ...

Записать в string или char бинарные данные
Бъюсь второй день, не могу записать бинарные данные в переменную. Или может переменные не верные... У меня получается что если бинарная...

Как преобразовать String в char
Приветствую! Нужно найти самое длинное слово введенное в textbox (windows forms). Проблема заключается в том, что string нельзя перебрать...

Как преобразовать string[] в char[]?
Суть такая, у меня есть строка string str2 = - можно ли мне из неё получить массив символов, например chr chr1 - 255, 244, 233 и т.п. -...

Как преобразовать string в char*?
Как преобразовать string в char* и отправить как аргумент наименьшими усилиями? #include &lt;iostream&gt; #include &lt;string&gt;...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru