Task task1 = {1, 10, 13, 24, 22, 10, 0, 0, 0}; Task task2 = {2, 15, 3, 15, 25, 20, 0, 0, 0}; Task task3 = {3, 8, 15, 5, 27, 30, 0, 0, 0}; Task task4 = {4, 14, 3, 2, 19, 40, 0, 0, 0}; Task task5 = {5, 3, 20, 12, 9, 50, 0, 0, 0}; Task task6 = {6, 4, 16, 5, 29, 60, 0, 0, 0}; Task task7 = {7, 16, 13, 4, 26, 70, 0, 0, 0}; Task task8 = {8, 13, 17, 24, 5, 80, 0, 0, 0}; Task task9 = {9, 15, 3, 15, 25, 90, 0, 0, 0};,在qt中,添加代碼通過獲取電腦裏excel文件的内容,導入進tasks中
时间: 2023-09-13 13:10:50 浏览: 38
你可以使用Qt自带的QAxObject模块来操作Excel文件,以下是一个示例代码:
```cpp
QAxObject* excel = new QAxObject("Excel.Application");
QAxObject* workbooks = excel->querySubObject("Workbooks");
QAxObject* workbook = workbooks->querySubObject("Open(const QString&)", "excel_file_path");
QAxObject* worksheet = workbook->querySubObject("Worksheets(int)", 1);
QList<Task> tasks;
for (int row = 1; row <= 9; row++) {
QString task_str = worksheet->querySubObject("Cells(int,int)", row, 1)->dynamicCall("Value2()").toString();
QStringList task_list = task_str.split(", ");
int task_id = task_list[0].toInt();
int task_params[6];
for (int i = 1; i <= 6; i++) {
task_params[i-1] = task_list[i].toInt();
}
Task task = {task_id, task_params[0], task_params[1], task_params[2], task_params[3], task_params[4], 0, 0, 0};
tasks.append(task);
}
workbook->dynamicCall("Close()");
excel->dynamicCall("Quit()");
```
在这个示例中,我们首先创建了一个Excel应用程序,然后打开指定的Excel文件。接下来,我们获取第一个工作表,并依次读取每一行的数据。读取到的数据以字符串形式返回,我们需要将其解析为Task对象的属性。
最后,我们将解析出来的Task对象添加到一个QList中,作为函数的返回值。
请注意,这个示例代码仅供参考,你需要根据自己的需求进行修改和完善。同时,建议在使用完QAxObject后及时调用dynamicCall("Quit()")函数退出Excel应用程序,以免造成内存泄漏和资源浪费。