×

qt快速写excel文件路径

包含qt快速写excel文件路径的词条

admin admin 发表于2023-03-29 20:58:13 浏览50 评论0

抢沙发发表评论

本文目录一览:

excelwriter写入到指定文件夹下

excelwriter写入到指定文件夹下,指定保存excel文件的路径 我的XlsxWriter脚本位于文件/app/smth1/smth2/中,出于某种原因,它将excel文件保存到了/app/。

Qt操作Excel

如果设置后台启动报错的话,那提供一种无奈之选,就是,设置窗口可见,然后

excel-setProperty("WindowState", "xlMinimized");

将窗口最小化,将就一下

关于qt与excel

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

if(!db.isValid())

{

qDebug() "export2Excel failed: QODBC not supported.";

return ;

}

QString xlsFile = "D:/test.xls";

QString dsn = QString("DRIVER={Microsoft Excel Driver (*.xls)};Readonly=0;DriverId=790;DBQ=%1").arg(xlsFile);-qt快速写excel文件路径

db.setDatabaseName(dsn);

if(!db.open())

{

//错误处理

return;

}

QString queryystr = "select * from [sheet1$]";

SqlTableModel*excelTableModel = new SqlTableModel(this, db);

QString tableName = "[sheet1$]";

excelTableModel-setTable(tableName);

QSqlQuery querry(queryystr, db);

excelTableModel-setQuery(querry);

excelTableModel-setEditStrategy(QSqlTableModel::OnManualSubmit);

excelTableModel-setSort(0, Qt::AscendingOrder);

bool ok = excelTableModel-select(); //选取整个表的所有行

ui.tableView_2-setModel(excelTableModel);

int i = 0;

foreach(QString heardName, heardList)

{

excelTableModel-setHeaderData(i, Qt::Horizontal, heardName);

i++;

}

int sqlTableCount = m_sqlTableModel-rowCount();

int excelTableCount = excelTableModel-rowCount();

QListQSqlRecord tmprecord;

for (int row = 0; row excelTableCount; row++ )

{

QSqlRecord excelRecord = excelTableModel-record(row);

tmprecord excelRecord;

}

db.close();

bool open = m_dba.open();

foreach(QSqlRecord record, tmprecord)

{

bool ok = m_sqlTableModel-insertRow(sqlTableCount); //添加一行

for (int k = 0; k5;k++)

{

if (k == 0)

{

bool suc= m_sqlTableModel-setData(m_sqlTableModel-index(sqlTableCount,k),record.value(k), Qt::CheckStateRole);-qt快速写excel文件路径

}

bool suc= m_sqlTableModel-setData(m_sqlTableModel-index(sqlTableCount,k),record.value(k), Qt::EditRole);-qt快速写excel文件路径

}

sqlTableCount++;

}

AlterButtonClicked();

initWindow(TEACHERMANAGECLICKED);

AlterButtonClicked()

{

m_sqlTableModel-database().transaction(); //开始事务操作

if (m_sqlTableModel-submitAll())

{

m_sqlTableModel-database().commit(); //提交

}

else

{

m_sqlTableModel-database().rollback(); //回滚

QMessageBox::warning(this, tr("Model"), tr("数据库错误: %1").arg(m_sqlTableModel-lastError().text()));

}

}

initWindow(int index)

{

int i = 0;

heardList.clear();

if (index == STUDENTMANAGECLICKED)

{

heardList "选择" "编号" "姓名" "性别" "班级" "备注";

m_sqlTableModel-setTable("\"StudentInfo\"");

m_sqlTableModel-setEditStrategy(QSqlTableModel::OnManualSubmit);

m_sqlTableModel-setSort(0, Qt::AscendingOrder);

m_sqlTableModel-select(); //选取整个表的所有行

ui.tableView_2-setModel(m_sqlTableModel);

foreach(QString heardName, heardList)

{

m_sqlTableModel-setHeaderData(i, Qt::Horizontal, heardName);

i++;

}

}

else if (index == TEACHERMANAGECLICKED)

{

heardList "选择" "用户名" "姓名" "性别" "角色" "备注";

m_sqlTableModel-setTable("\"TeacherInfo\"");

m_sqlTableModel-setEditStrategy(QSqlTableModel::OnManualSubmit);

m_sqlTableModel-setSort(0, Qt::AscendingOrder);

bool ok1 = m_sqlTableModel-select(); //选取整个表的所有行

ui.tableView_2-setModel(m_sqlTableModel);

foreach(QString heardName, heardList)

{

m_sqlTableModel-setHeaderData(i, Qt::Horizontal, heardName);

i++;

}

}

//m_sqlTableModel-insertColumn(0);

ui.tableView_2-resizeColumnsToContents();

}

4.2 UiPathExcel之写入操作

Excel 写操作

写一个单元格

控件介绍

Write Cell: 使用Write Cell控件,在指定单元格写入内容

常用属性介绍:

Destination:

Cell: 要写入的单元格。如果在指定坐标处已经存在一个值,则会将其覆盖

SheetName: 需要写入的工作簿名称

Input:

Text: 要写入单元格或范围的值或公式

WorkbookPath: 需要写入的Excel文件路径

Misc:

Private: 如果选中,则变量和参数的值不再记录在详细级别

Options:

Password: Excel 文件密码(如无可忽略)

案例说明

给定Excel 文件“writeExample.xlsx“,在”B1”单元格,写入内容”Hello UiPath”,在”B2”单元格键入公式”=B1” Hello World””

操作步骤

写一行

控件介绍

Write Range: 使用Write Range控件,在指定范围单元格写入内容

常用属性介绍:

Input:

SheetName: 需要写入的工作簿名称

StartingCell: 从指定单元格开始写入数据

Input:

DataTable: 要写入单指定范围的数据

Misc:

Private: 如果选中,则变量和参数的值不再记录在详细级别

Options:

AddHeaders: 如果选中,列标题也将写入指定表格的范围

案例说明

给定Excel文件”Employees300.xlsx”,使用Read Write控件读取A2行的数据,并写入到文件”writeExample.xlsx”中

操作步骤

第一步:使用Read Range控件,输入Excel文件路径,读取A2到E2范围的数据,保存到变量rowDT中

写一列

控件介绍

Write Range: 使用Write Range控件,在指定范围单元格写入内容

案例说明

给定Excel文件”Employees300.xlsx”,使用Read Write控件读取A列的数据,并写入到文件”writeExample.xlsx”中

操作步骤

第一步:使用Read Range控件,输入Excel文件路径,读取A1到A320范围的数据,保存到变量columnDT

写多行多列

控件介绍

Write Range: 使用Write Range控件,在指定范围单元格写入内容

案例说明

给定Excel 文件“Employees300.xlsx“,读取从单元格”A2”到”E7”范围的数据,并将数据写入到“ writeExample.xlsx “文件的由”A2”开始的单元格中

操作步骤

UiPath技术交流群:

「465630324」

qtactivex操作excel,该怎么解决

Excel读取

为了便于测试,假设已存在一个excel文件,操作内容已经被红色标记出来。如下所示:

主要读取内容:

标题

工作表数目

工作表名称

起始行

起始列

行数

列数

单元格内容

代码如下:

QAxObject excel("Excel.Application");

excel.setProperty("Visible", true);

QAxObject *work_books = excel.querySubObject("WorkBooks");

work_books-dynamicCall("Open (const QString)", QString("E:/test.xlsx"));

QVariant title_value = excel.property("Caption"); //获取标题

qDebug()QString("excel title : ")title_value;

QAxObject *work_book = excel.querySubObject("ActiveWorkBook");

QAxObject *work_sheets = work_book-querySubObject("Sheets"); //Sheets也可换用WorkSheets

int sheet_count = work_sheets-property("Count").toInt(); //获取工作表数目

qDebug()QString("sheet count : ")sheet_count;

for(int i=1; i=sheet_count; i++)

{

QAxObject *work_sheet = work_book-querySubObject("Sheets(int)", i); //Sheets(int)也可换用Worksheets(int)-qt快速写excel文件路径

QString work_sheet_name = work_sheet-property("Name").toString(); //获取工作表名称

QString message = QString("sheet ")+QString::number(i, 10)+ QString(" name");

qDebug()messagework_sheet_name;

}

if(sheet_count 0)

{

QAxObject *work_sheet = work_book-querySubObject("Sheets(int)", 1);

QAxObject *used_range = work_sheet-querySubObject("UsedRange");

QAxObject *rows = used_range-querySubObject("Rows");

QAxObject *columns = used_range-querySubObject("Columns");

int row_start = used_range-property("Row").toInt(); //获取起始行

int column_start = used_range-property("Column").toInt(); //获取起始列

int row_count = rows-property("Count").toInt(); //获取行数

int column_count = columns-property("Count").toInt(); //获取列数

for(int i=row_start; i

{

for(int j=column_start; j

{

QAxObject *cell = work_sheet-querySubObject("Cells(int,int)", i, j);

QVariant cell_value = cell-property("Value"); //获取单元格内容

QString message = QString("row-")+QString::number(i, 10)+QString("-column-")+QString::number(j, 10)+QString(":");-qt快速写excel文件路径

qDebug()messagecell_value;