首页| 论坛| 消息
主题:自用的Excel访问操作类
realfan发表于 2014-03-04 08:45
包括设置Excel单元格格式,颜色,边框,合并单元格等操作,支持列标识为三个字母的操作
QExcel * pExcelProc = new QExcel(this);
pExcelProc->showExcelApp(true);
//---------------------
pFont->ucMask = 0;
pFont->ucMask |= MASK_BIT_FONT_NAME | MASK_BIT_FONT_SIZE;
pFont->strFontName = "Arial";
pFont->ucFontSize = 9;
pExcelProc->setRangeFont(1, 1, 2000, 200, pFont);
pExcelProc->setRangeWrap(1, 1, 2000, 200, true);//设置换行
//==========报表总标题================
//for(int i = 0; i < m_lstXlsColWidth.size(); ++i)
//{
//pExcelProc->setColumnWidth(i+1, m_lstXlsColWidth);
//}
int idxRow = 1;
int idxCol = 1;
pExcelProc->mergeCells(idxRow, idxCol, idxRow, 7);
pExcelProc->setCellString(idxRow, idxCol, QString("报表"));
//-------字体--------
pFont->ucMask = 0;
pFont->ucMask |= MASK_BIT_FONT_SIZE | MASK_BIT_FONT_BOLD;
pFont->ucFontSize = 16;
pFont->bBold = true;
pExcelProc->setRangeFont(idxRow, idxCol, idxRow + 1, 200, pFont);
pExcelProc->setRangeFormat(2, 1, 2, 200, "@");
pFont->ucMask = 0;
pFont->ucMask |= MASK_BIT_FONT_SIZE | MASK_BIT_FONT_BOLD;
pFont->ucFontSize = 12;
pFont->bBold = true;
pExcelProc->setRangeFont(2, 1, 2, 200, pFont);
//pExcelProc->setCellString(2, 6, tr("时间:"));
pExcelProc->mergeCells(2, 7, 2, 8);
//pExcelProc->setCellString(2, 7, m_ReadTime.toString("yyyy-MM-dd"));
//pExcelProc->setCellString(2, 9, m_ReadTime.toString("hh:mm:ss"));
//-------对齐-------
pBorder->ucStyle = 1;
pBorder->ucWidth = 2;
pBorder->ucColorIndex = 1;
pAlig->H = ALIGNMENT_CENTER;
pAlig->V = ALIGNMENT_CENTER;
pExcelProc->setRangeAlignment(idxRow, idxCol, idxRow + 1, 200, pAlig);
//------------------Region quarter month--------------------------------------------------------------
//idxRow++; //2
//pFont->ucFontSize = 9;
//pExcelProc->setRangeFont(idxRow, 1, 10000, 254, pFont);
QTableWidget * pTbl = (QTableWidget*)(m_pTabWidget->currentWidget());
//============表头========================================
idxRow = iStartRow;
QStringList lstStr;
lstStr setRangeBkColor(idxRow, 1, idxRow, iColCount, Qt::gray);
//============内容==============================
pFont->bBold = false;
pExcelProc->setRangeFont(idxRow+1, 1, 10000, 254, pFont);
pExcelProc->setRangeFormat(iStartRow, 1, pTbl->rowCount()+iStartRow, 13, "@");
pExcelProc->setRangeFormat(iStartRow, 8, pTbl->rowCount()+iStartRow, 9, "@");

pFont->ucMask = 0;
pFont->ucMask |= MASK_BIT_FONT_SIZE;
pFont->ucFontSize = 9;
//pFont->dwFontColor = cl;//QColor(150, 150, 150);
pExcelProc->setRangeFont(iStartRow, 1, pTbl->rowCount()+iStartRow, iColCount, pFont);
//pExcelProc->setRangeFormat(iStartRow, 1, m_lstRec.size()+iStartRow, iColCount, "@");

pAlig->H = ALIGNMENT_CENTER;
pAlig->V = ALIGNMENT_CENTER;
pExcelProc->setRangeAlignment(iStartRow, 1, pTbl->rowCount()+iStartRow, iColCount, pAlig);
pExcelProc->drawGrid(iStartRow, 1, pTbl->rowCount()+iStartRow, iColCount);
附件: qexcel.cpp (17 K) 下载次数:580
附件: qexcel.h (7 K) 下载次数:545
下一页 (1/2)
回帖(24):
24楼:感谢分享
23楼:谢谢楼主分享
22楼:十分感谢!有word操作的吗?

全部回帖(24)»
最新回帖
收藏本帖
发新帖