теперь я делаю одну программу, которая читает два листа excel и делает его одним.
и все в порядке. но у меня одна проблема
то есть
QAxWidget *excel=new QAxWidget("Excel.Application", this);
excel->dynamicCall("SetVisible", true);
QAxObject *workbooks=excel->querySubObject("WorkBooks");
workbooks->dynamicCall("Open(const QString&)", QString(":/temp/temp.xls"));
QAxObject *workbook=excel->querySubObject("ActiveWorkBook");
QAxObject *worksheets=workbook->querySubObject("WorkSheets");
мой файл qrc
<RCC>
<qresource prefix="/">
<file>temp/temp.xls</file>
</qresource>
</RCC>
workbooks-> dynamicCall ("Открыть (const QString &)", QString (": /temp/temp.xls")); в этой части возникает ошибка
я вставил один файл шаблона excel в свой ресурс.qrc
и я попытался открыть, но это не сработало.
если я прошел абсолютный путь к файлу, тогда работайте. но если я прошел относительный путь файла, не работайте
как я могу это решить?? пожалуйста дайте мне знать, спасибо
Поместите файл excel в некоторый каталог внутри проекта, например, шаблоны.
Таким образом, структура будет
ProjectMainDirectory/+ - MyResources.qrc + - template/+ - temp.xls
Добавьте файл в качестве ресурса. Файл ресурсов будет выглядеть следующим образом:
<RCC> <qresource prefix="/Files"> <file>template/temp.xls</file> </qresource> </RCC>
Теперь попробуйте получить доступ к файлу как ": /Files/template/temp.xls
. У вас должен быть доступ к файлу.
Когда вы компилируете компилятор, он будет читать файл ресурсов и упаковывать файл ресурсов в exe. Вам не нужно будет упаковывать файл xls вместе с exe отдельно.
Надежда, которая решает проблему. Если возникнут проблемы, оставьте комментарий.
Вы можете поместить файл excel в какой-либо каталог внутри проекта, например, документы или что-то еще.
Установите текущий каталог QDir :: setCurrent (QCoreApplication :: applicationDirPath())
Вы можете получить доступ к файлам внутри папки doc, например, "docs/anyfile.xls"
Если вы поместите файл xls внутри ресурсов, он будет включен в исполняемый файл и не будет доступен компонентами Microsoft Office COM.