powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Выгрузка в Excel из C++
37 сообщений из 37, показаны все 2 страниц
Выгрузка в Excel из C++
    #32808507
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не подскажете ли, где можно наковырять dll (с описанием конечно, а еще лучше - с примерами), которая облегчает выгрузку данных из программы на C++ for Win (не Builder, не VC, не Net). Интерфейсный модуль, короче.

А то я что-то за;№%:хался уже писать Invoke...Invoke...Invoke, тем более что и пропертей с методами Excel'а у меня нет.
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32808514
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тебе только данные ?
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32808516
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лови класс, который генерит бинарник формата exel97
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32808527
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, сейчас посмотрю.

Как оказалось, люди уже видимо заморачивались этой проблемой, и поиск дал оччень неплохую библиотеку:
http://sources.codenet.ru/download.php?id=416&cid=25&o=0&my=0

Не знаю пока, что там по скорости, но по интерфейсу - то, что надо, однозначно.
Рекомендую.
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32808545
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Lepsik: у тебя все же под Builder заточена прога (см. #include <vcl.h>)
Хотя переделать несложно. А то, на что я ссылку выше дал, работает везде, даже под Delphi
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32808597
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это случайно затесалось когда унит создавал. работать будет на всех платформах и процессорах и ОС.
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32808628
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По скорости твой вариант быстрее. Но примитив - только заполнение ячеек на одном листе. Хотя, иногда может быть полезно, когда отчет простой. Будем надеяться, что новые версии Excel будут и в дальнейшем "понимать" этот формат.
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32808863
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2: Ужо не раз в этом форуме писал:
Есть набор классов C++, для формирования книги *.XLS с минимально необходимым оформлением (документированно).
В том числе и вариант *.DLL
Могу намылить ежели кому надо...
Проект - в принципе кросс-платформный, но под *nix-ы еще не сделан make-файл.
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32809255
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Re: Не знаю, я по этому форуму искал - не нашел. А через что они работают? Через OLE или шпарят прям по внутренней структуре? И что подразумевается под "минимально необходимым оформлением"? Шиты (в смысле sheet'ы) можно хотя бы делать?
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32809524
roman10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем все время вызывать Invoke? Интерфес двойственный, методы можно вызвать напрямую.

mustliveпропертей с методами Excel'а у меня нет.
???
Наизусть, что ли все помнишь? Есть библиотека типов. И навярняка должен быть и OleView.
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32809574
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интерфейс более-менее налаженный есть в VC и Builder'е. А у меня ни то, ни другое. Через интерфейсный DLL гораздо удобнее все делать. Хотя OLE по скорости конечно не фонтан
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32809627
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а записать все в html и потом поднять его в экселе слабо? Неужто-никто не хочет так делать? почему?
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32809630
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mustliveRe: Не знаю, я по этому форуму искал - не нашел. А через что они работают? Через OLE или шпарят прям по внутренней структуре? И что подразумевается под "минимально необходимым оформлением"? Шиты (в смысле sheet'ы) можно хотя бы делать?

Задумывалось для генерации отчетов.
Далее открываем в чем угодно (например OpenOffice), и печатаем.
Работають они - напрямую.
Листов по умолчанию - 1024 (разработка с отрытыми исходниками, будет мало, увеличишь константу)
Фонтов - 256
Стилей - 2048
Размер и ориентация листа.
Выравнивание - слева / справа / по центру
Фон и границы ячеек
Объединение ячеек
...
Ну, там еще всякие бантики.
Что сделал, то сделал. Будет время свободное, можно еще что-нибудь привинтить.
А пока - что есть...
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32809642
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... неплохо вроде... Мне б еще переименование шитов (тьфу, шииитов).
Давай, уговорил, если бесплатно :) Мыло такое: мой ник @yandex.ru
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32809650
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
а записать все в html и потом поднять его в экселе слабо? Неужто-никто не хочет так делать? почему?


По кочану :) Ты сам пробовал достаточно большой HTML (который кстати несет минимум смысловой нагрузки, да еще в нем по страницам эксельным не разбить) открыть в Excel? Я гарантирую - если Excel и выживет, то открывать будет доооолго. Да и зачем делать через промежуточный формат, если есть задача: некоторые данные запихать в .xls? Pourquoi бы не сделать это напрямую, а не через то место, через которое у нас в стране все делается?
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32809882
value
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 nik_x: а можно тож посмотреть на сию библиотеку отгурзки в Exel? адрес в профайле. Заранее спасибо.
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32810516
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и мне и мне пожалуйста. to : FAST собака NULL тчк NET

спасибо
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32810633
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, и где ж обещанное? :(
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32810671
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2: mustlive
Отправил повторно. Получил?
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32810679
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос, может быть не для этого форума, но уж коль говорим о формировании книги Екселя, то может кто видел, где, описание формата XLS (BIFF8)?
Я пользовался этим: http://sc.openoffice.org/excelfileformat.pdf
Но в этой книге нет описания, как формируется рисунок (векторный или растр)
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32810756
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nik_x: Спасибо, получил. Сейчас буду смотреть
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32810767
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ммммдааааа....
Посмотрел я. Что могу сказать. Подключить классы напрямую мне не удалось, ругается уже на конструктор TShell. Использовать фичи борландов я не могу, остался последний вариант - юзать DLL. Но этот вариант негуманный в том смысле, что для всех методов придется самому писать допмодуль, так как громоздить в программу куски навроде
Код: plaintext
1.
2.
3.
typedef int(*ft1)(char*);
ft1 CreateChannel = (ft1)GetProcAddress(hd, "CreateChannel");
int n = CreateChannel("sample.xls");
очень не хочется. Тем более, что без них результата мне не увидеть как своих ушей, простое открытие и закрытие канала из сэмпла почему-то никакого файла на выходе не дало, наверное, надо хотя бы страницу создать (т.е. пихнуть кусок вроде вышеприведенного, а так лееень)

В этом смысле эта штука http://sources.codenet.ru/download.php?id=416&cid=25&o=0&my=0
отличается в выгодную сторону, так как там эта работа уже проделана и явные вызовы методов из DLL запихнуты внутрь класса, остается только их вызывать и усе.

В общем, буду думать. Велосипеды изобретать времени нет
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #32812880
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все-таки штука, предложенная тов. nik_x в конце концов произвела впечатление. OLE рядом не валялось по скорости. Единственный пока замеченный недостаток - файл получается достаточно большой. Но об этом автор честно предупреждает в доке. К тому же, если его открыть и сохранить в самом Excel'е, эта проблема самоустраняется.

Так что по результатам тестирования, в целом - это the best, возможностей предоставляется много.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Выгрузка в Excel из C++
    #34277389
AlexMaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Буду признателен. если кто-нибуть кинет мне из рабочих проектов по експортув ексел.
так как все ссылки уже не работают.
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #34277398
AlexMaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сори забыл указать почту alexmaa(собака)list.ru
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #34378834
Borr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nik_x И мне можешь прислать эту библиотеку для Excel. На boris_741 собака mail точка ru
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #34379457
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и мне пожалуйста пришлите на sashka304 сабака ukr.net
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #34387538
aak__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простенький класс

h
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
#include <odbcinst.h>
#include <afxdb.h>

class CExcel  
{
private:
	CDatabase m_database;
public:
	void Close();
	bool Write(CString param1);
	bool Open(CString filename);
	CExcel();
	virtual ~CExcel();

};

cpp
Код: plaintext
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.
#include "Excel.h"



CExcel::CExcel()
{
}

CExcel::~CExcel()
{
}

bool CExcel::Open(CString filename)
{
	// exactly the same name as in the ODBC-Manager
	CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; 
	// Filename and path for the file to be created
	CString sExcelFile = filename;                
	CString sSql;

	try
	{
		// Build the creation string for access without DSN
		sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s", sDriver,sExcelFile,sExcelFile);

		// Create the database (i.e. Excel sheet)
		if( m_database.OpenEx(sSql,CDatabase::noOdbcDialog) )
		{
			
			// drop old table
			try
			{
				sSql = "DROP TABLE results";
				m_database.ExecuteSQL(sSql);
			}
			catch(CException *pEx)
			{
				pEx->Delete();
			}

			// recreate new table structure
			sSql = "CREATE TABLE results(my_values TEXT)";

			// write value
			m_database.ExecuteSQL(sSql);			
			
		}

	}
	catch(CException *pEx)
	{
		pEx->ReportError();
		pEx->Delete();

		return false;
	}
  
	return true;
}

bool CExcel::Write(CString  param1)
{
	try
	{	

		CString sSql = "INSERT INTO results(my_values) VALUES ('";
		sSql += param1;		
		sSql += "')";

		m_database.ExecuteSQL(sSql);	

	}
	catch(CException *pEx)
	{
		pEx->ReportError();
		pEx->Delete();

		return false;
	}
  
	return true;
}

void CExcel::Close()
{
	// Close database
	if(m_database.IsOpen())
		m_database.Close();

}
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Выгрузка в Excel из C++
    #35506678
hyp1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно этой dll под php пользоваться?
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #35511858
izekia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не внимательно прочитал, может кто-то предлагал уже, но можно из обычного XML с помощью таблицы стилей сформировать таблицу XML которая откроется в Excel, причем поддерживается форматирование, разделение на несколько листов и тп.
Единственный минус, с которым я столкнулся - невозможность группировать строки и колонки.
Описание формата - здесь
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #35519102
burunduchechek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно вот ещё на это посмотреть - www.libexcel.com
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #35519985
ppc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mustliveСпасибо, сейчас посмотрю.

Как оказалось, люди уже видимо заморачивались этой проблемой, и поиск дал оччень неплохую библиотеку:
http://sources.codenet.ru/download.php?id=416&cid=25&o=0&my=0

Не знаю пока, что там по скорости, но по интерфейсу - то, что надо, однозначно.
Рекомендую.
Ссылочка не работает((
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #35525680
Hlsiis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Писал код что приведен выше. Но возникает все время одна и та же проблема.Максимум пишется в одну ячейку экселевскую 256 символов.Как с этим боротся?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Выгрузка в Excel из C++
    #37996642
T.D.S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nik_x2: Ужо не раз в этом форуме писал:
Есть набор классов C++, для формирования книги *.XLS с минимально необходимым оформлением (документированно).
В том числе и вариант *.DLL
Могу намылить ежели кому надо...
Проект - в принципе кросс-платформный, но под *nix-ы еще не сделан make-файл.

Доброго времени суток!

Вот возникла необходимость работать с файлами Excel.
Если не затруднит (после столь догого молчания) пришлите на david-of-t@yandex.ru. Заранее спасибо.
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #37996725
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T.D.S,

Достал из сундука, стряхнул пыль.
...
Рейтинг: 0 / 0
Выгрузка в Excel из C++
    #37996752
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И мне пожалуйста на vladimirmir2012@yandex.ua
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Выгрузка в Excel из C++
    #39437587
folkine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nik_x,

если еще актуально, то буду очень благодарен o.o.yatskevych@gmail.com
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Выгрузка в Excel из C++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]