Ошибка передачи имени QT Open Excel

0

теперь я делаю одну программу, которая читает два листа 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

и я попытался открыть, но это не сработало.

если я прошел абсолютный путь к файлу, тогда работайте. но если я прошел относительный путь файла, не работайте

как я могу это решить?? пожалуйста дайте мне знать, спасибо

  • 0
    Как вы можете дать относительный путь, когда у вас есть в качестве ресурсов?
  • 0
    если я добавлю файл Excel в файл qrc, я смогу получить доступ к этому файлу: /temp/temp.xls, но он не работает. и если я дам c: \ user \ desktop \ temp \ temp.xls, то это сработает
Теги:
excel
qt

2 ответа

0
  1. Поместите файл excel в некоторый каталог внутри проекта, например, шаблоны.
    Таким образом, структура будет

    ProjectMainDirectory/+ - MyResources.qrc + - template/+ - temp.xls

  2. Добавьте файл в качестве ресурса. Файл ресурсов будет выглядеть следующим образом:

    <RCC> <qresource prefix="/Files"> <file>template/temp.xls</file> </qresource> </RCC>

  3. Теперь попробуйте получить доступ к файлу как ": /Files/template/temp.xls. У вас должен быть доступ к файлу.

Когда вы компилируете компилятор, он будет читать файл ресурсов и упаковывать файл ресурсов в exe. Вам не нужно будет упаковывать файл xls вместе с exe отдельно.

Надежда, которая решает проблему. Если возникнут проблемы, оставьте комментарий.

  • 0
    Благодарю. это будет еще одно решение. но я слышал об этом, если я добавлю файл в файл .qrc, этот файл только для чтения. но я хочу открыть этот файл только для записи. если это не так, я буду использовать ваше решение. ответ плз
  • 0
    Да, как вы правильно сказали, файлы, добавленные в qrc, доступны только для чтения. Это потому, что они упакованы в сам exe. Было бы более полезно, если бы вы заявили, в чем именно заключается ваша проблема. Чего именно вы хотите достичь с помощью файла Excel?
Показать ещё 1 комментарий
0
  1. Вы можете поместить файл excel в какой-либо каталог внутри проекта, например, документы или что-то еще.

  2. Установите текущий каталог QDir :: setCurrent (QCoreApplication :: applicationDirPath())

  3. Вы можете получить доступ к файлам внутри папки doc, например, "docs/anyfile.xls"

Если вы поместите файл xls внутри ресурсов, он будет включен в исполняемый файл и не будет доступен компонентами Microsoft Office COM.

  • 0
    Благодарю. я сделал так и когда я выпускаю этот проект в установочный файл. как включить этот файл шаблона?
  • 0
    Просто скопируйте папку docs вместе с двоичным файлом, где существует исполняемый файл.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню