使用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));