Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Создание .xlsx файлов
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
AndeR
Искал как создать Excel таблицу через Qt. Нашел только такой вариант:
QFile mFile("E:/Qt/MyCourse/Excel.xlsx");
    mFile.open(QIODevice::WriteOnly);
    mFile.close();

Файл создается, но при попытке его открыть получаю следующее сообщение:
Цитата
Не удается открыть файл 'Excel.xlsx', т.к. формат или расширение этого файла является недопустимым. Убедитесь, что файл не поврежден и расширение его имени соответствует его формату.


Подскажите как создать Excel файл для последующей работы с ним?
wiz29
Очевидно, никак, используя Qt.

Можно конечно взять QFile и реализовать на основе спецификации.
Но думаю это врядли интересно.

Навскидку, гугл выдает библиотеку, которая может облегчить жизнь.
Можно еще тут посмотреть.
Iron Bug
есть сторонние библиотеки. на сайте Qt есть ссылка, например, на эту библиотеку:
https://github.com/dbzhang800/QtXlsxWriter
lanz
Есть еще такой вариант:
http://www.wiki.crossplatform.ru/index.php...%D1%8E_ActiveQt
Litkevich Yuriy
Ещё один вариант, натолкнулся где-то в интернете, забахать простой HTML-ный файл с таблицей, а расширение задать ему XLS, Эксель его автоматически импртирует.

Как вам такой костыль?

Цитата(AndeR @ 23.11.2015, 20:43) *
Подскажите как создать Excel файл для последующей работы с ним?
если работать из своего приложения собираешся, то естественный для Экселя путь - ActiveQt, как написал lanz, либо сторонние библиотеки, как указали предыдущие форумчане.
Iron Bug
нужно понимать, что при подключении библиотек типа ActiveQt потеряется переносимость программы на другие системы. так что лучше использовать не частные решения, а те средства, которые рекомендуются при разработке с использованием Qt, и работают с кроссплатформой.

P.S. Аккуратнее копируйте ссылки (пришлось поправить ссылку в посте lanz'а, она была битая)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.