使用Qt做客戶端時,經常會用到統計表格的場景,剛開始從網上也是找代碼,不過都是結合QTableModelde的,大段大段代碼,雖然簡單,但是通用性不強,每次都要大段考過去,改一點點。用多了自己摸索一點點改,現在封裝成一個類,像Qt自帶的table一樣,使用方便, WPS測試有時支持有時不支持,還不清楚什麼問題。下載鏈接:https://download.csdn.net/download/qq_36774575/11851114
相關接口如下:
//創建新文件或是打開文件
void openFile(QString file);
//關閉文件,停止操作文件
void closEngine();
/*******從Excel中取數據*******/
//獲取行列數
void getExcelRowColumnCount(int *rowCount, int *columnCount);
//獲取數據,合併單元格部分未做處理,爲空
QVariant getRowsDatas(int rowStart, int columnStart, int rowEnd, int columnEnd);
//考慮合併單元格的部分內容,以左上角內容填充
QVariant getMergedRowsDatas(int rowStart, int columnStart, int rowEnd, int columnEnd);
//在表格中前兩列中查找字符串,返回找到的字符串所在行列
bool findText(QString text, int *row, int *column);
//獲取表格中合併單元格部分
QList<MergeRange> getMergedRanges();
/*******向Excel中寫數據*******/
void clearExcel();
//填充數據
void insertData(int rowStart, int columnStart, int rowEnd, int columnEnd, QVariant var);
//設置標題
void setTitle(QString title, int rowStart = 1, int columnStart = 1, int rowEnd = 1, bool merge = true);
//設置字體大小
void setFontSize(int rowStart, int columnStart, int rowEnd, int columnEnd, int fonnSize);
//設置列表頭
void setColumnsTitle(int row, int startColumn, QVariant titles);
void setColumnTitle(int row, int column, QString columnTitle);
//設置列數
void setColumnCount(int count);
//設置默認列寬度 需要先設置列數
void setDefaultColumnWidth(int width);
//設置列寬度 需要先設置列數
bool setColumnWidth(int column, int width);
void setColumnFormat(int rowStart, int columnStart, int rowEnd, int columnEnd, QString format, int dataFormat = 0);
//單元格合併
void setRangeMerged(int rowStart, int columnStart, int rowEnd, int columnEnd, bool merge);
//調整行高度
void setDefaultRowHeight(int height);
void setRowHeight(int row, int height);
//設置區域邊框
void setRangeBorder(int rowStart, int columnStart, int rowEnd, int columnEnd, QColor color = QColor(0,0,0));
//設置區域字體顏色
void setRangeTextColor(int rowStart, int columnStart, int rowEnd, int columnEnd, QColor color = QColor(0,0,0));