Qt xlsx库读取Excel单元格值

文章目录[隐藏]

Qt xlsx 库读取 Excel 单元格代码

QString MainWindow::getExcelItemData(QString fileName, QString itemName)
{
    QXlsx::Document xlsx(fileName);/*打开一个 book1 的文件*/
    QString itemData = xlsx.read(itemName).toString();
    qDebug() << "[" << __FUNCTION__ <<__LINE__ << "] :" <<  itemData;
    return itemData;


}

QString MainWindow::getExcelItemData(QString fileName, int row, int col)
{
    QString itemData ;
    if(row < 1 || col < 1)
    {
        return "-1";
    }
    QXlsx::Document  xlsx(fileName);/*打开一个 book1 的文件*/
    QStringList sheetList = xlsx.sheetNames();
    if (sheetList.size() > 0)
    {
        itemData = xlsx.read(row, col).toString();
        qDebug() << "[" << __FUNCTION__ <<__LINE__ << "] :" <<  itemData;
    }
    else
    {
        qDebug() << "[" << __FUNCTION__ <<__LINE__ << "] : read error!" ;
        return "-1";
    }

    return itemData;
}

QString MainWindow::getExcelAllInfos(QString fileName)
{
    //载入 excel 文件
    QXlsx::Document xlsx(fileName);
    QString itemData;
    //获取工作表数目,并且选择第一个
    QStringList sheetList = xlsx.sheetNames();
    if (sheetList.size() > 0) {

        //获取数据表名字
        xlsx.selectSheet(sheetList[0]);
        //获取表格行数和列数
        QXlsx::CellRange range=xlsx.dimension();

        QString xm = "";
        QString sfz = "";
        for (int i = 2; i < range.rowCount()+1; ++i) {
            //读取工作表有用数据插入数据库
            if (xlsx.cellAt(i, 2) != 0) {
                xm = xlsx.cellAt(i, 2)->value().toString().trimmed();
                qDebug() << "[" << __FUNCTION__ <<__LINE__ << "] :" <<  xm;
            }

            if (xlsx.cellAt(i, 3) != 0) {
                sfz= xlsx.cellAt(i, 3)->value().toString().trimmed();
                qDebug() << "[" << __FUNCTION__ <<__LINE__ << "] :" <<  sfz;
            }


            if (!xm.isEmpty() && !sfz.isEmpty()) {
                xm = "";
                sfz = "";
            }
        }

    }
    else {

        return "-1";

    }
    qDebug() << "[" << __FUNCTION__ <<__LINE__ << "] :" <<  itemData;
    return itemData;
}

Qt xlsx库读取Excel单元格值插图
posted @ 2020-03-11 11:43  不随。  阅读(109)  评论(0编辑  收藏  举报  来源