2023-04-18 14:14:46 +08:00
|
|
|
#ifndef READEXCEL_H
|
|
|
|
#define READEXCEL_H
|
|
|
|
|
|
|
|
#include <map>
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
#include <iostream>
|
|
|
|
#include <QAxObject>
|
|
|
|
#include <QString>
|
|
|
|
#include <QFile>
|
|
|
|
|
|
|
|
|
|
|
|
class Position
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
Position() {
|
|
|
|
m_row = 0;
|
|
|
|
m_col = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
Position(int row, int col) {
|
|
|
|
m_row = row;
|
|
|
|
m_col = col;
|
|
|
|
}
|
|
|
|
public:
|
|
|
|
int m_row;
|
|
|
|
int m_col;
|
|
|
|
|
|
|
|
public:
|
|
|
|
bool operator<(const Position & ct) const // 两个const是必需的。
|
|
|
|
{
|
|
|
|
if (m_row < ct.m_row) {
|
|
|
|
return true;
|
|
|
|
} else if (m_row == ct.m_row) {
|
|
|
|
if ( m_col < ct.m_col ) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
class ReadExcel
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
ReadExcel();
|
|
|
|
~ReadExcel();
|
|
|
|
|
|
|
|
public:
|
|
|
|
//打开excel文件
|
|
|
|
bool openExcel(const QString& filename);
|
|
|
|
void getALLfromDirNormalExcel(QString strFileName);
|
|
|
|
bool openExcelForWrite(const QString &filename);
|
|
|
|
//获取 指定单元格的数据
|
|
|
|
std::string getCellData(const int& row, const int& col);
|
|
|
|
int WriteCellData(const int& row, const int& col,std::string strValue );
|
|
|
|
//获取 行数,列数
|
|
|
|
void getInfo(int& row, int& col) const;
|
|
|
|
|
|
|
|
private:
|
|
|
|
void getALLfromExcel();
|
|
|
|
void WriteALLfromExcel();
|
|
|
|
|
|
|
|
private:
|
|
|
|
int m_row; //行
|
|
|
|
int m_col; //列
|
|
|
|
QString m_filename;
|
|
|
|
QAxObject* m_excel;
|
|
|
|
int m_rowWrite; //行
|
|
|
|
int m_colWrite; //列
|
|
|
|
QAxObject* m_excelWrite;
|
|
|
|
|
|
|
|
std::map<Position, std::string> m_mapdata;
|
|
|
|
std::map<Position, std::string> m_mapdataWrite;
|
|
|
|
Position p;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // READEXCEL_H
|