类似EXCEL的报表类库

andyysgt051997

andyysgt051997

2016-01-29 12:06

类似EXCEL的报表类库,类似EXCEL的报表类库

类似EXCEL的报表类库

作者:朱志雄

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

下载源代码

  此代码是一个电子表格类库,还不是很完善,希望大家给多点意见和建议,我会尽快把相应功能丰富进去的。我的信箱:zzxiong@citiz.net现在这个sample不是很完整,我也正在完善中,相应的函数接口到时我会整理成一个文档发布给大家。

声明:对于此代码中可能引用了其他网站上的一些技术,如果侵犯了相关作者的权益请尽快联系我,我会删除其中不合适部分。也请下载此代码的人尊重代码的原作者的意愿。若下载者要使用此代码请自行征求原作者的意见。

  1.12版本现支持单元格合并,文本对齐方式,字体,字体颜色,表格线定制,单元格读写权控制,列排序,动态增删行列,支持通过剪贴板同其他软件间的数据进行交互,支持单元格图形显示。可根据开发者需要进行二次开发,类库提供比较丰富的开发接口类函数,支持类似EXCEL的所见机所得的打印预览。

  在下一版本中作者还将加入单元格公式计算,数据库绑定,图表显示,支持HTML文件存储。以下为单元格公式解析的部分代码,大家感兴趣可以看一下!

CString CGridCtrl::ParserExpression(CString strExpression) {     CString strSign; //运算符     CString strRetu;     CString strTmp2;     CString strTmp3;      LPCSTR  lpstr;      char strTmp[200];     long nTmp;//,nRetu;     long i,nLen,nStatus;     int nRow,nCol;     strExpression.MakeUpper();     nLen = strExpression.GetLength();     strSign = "+,-,*,/,(,)";      strRetu = "";     nStatus = 0 ; // 0 初始状态遇到加减括号等符号  1 字母开始 2 数值开始     nTmp = -1;     memset(strTmp,0,200);     lpstr = strExpression;     for ( i=1; i=0 )||(i+1 =nLen)) //是运算符号         {             if ((i+1 = nLen)&&((strExpression.GetAt(i)=''''0'''') &&                  (strExpression.GetAt(i)<=''''9'''')))             {                 nStatus = 2;                 nTmp++;                 strTmp[nTmp] = lpstr[i];//strExpression.GetAt(i);             }             if ((nStatus==2)&&(strExpression.GetAt(i)==''''('''')) nStatus=1;             if ( nStatus==1 )    //非单元格和正常计算数,直接拼串返回             {                 strTmp3 = "";                 strTmp3.Format("%s",strTmp);                 strRetu = strRetu + strTmp3;             }             else if ( nStatus == 2)            //正常单元格对象或者数字             {                 //项 strRetu = strRetu + "<" + _T(strTmp) + "";                 if (!IsValidCol(strTmp))                 {                     //return "#NAME!";                     strTmp3 = "";                     strTmp3.Format("%s",strTmp);                     strRetu = strRetu + "(" + strTmp3 + ")";                 }                 else                 {                     nRow = 0; nCol = 0; //                    strTmp = ParserCell() 递归 //                    MessageBox(strTmp,"ooo",1);                     strTmp2.Format("%s",strTmp);                     CCellID cell;                     if (ConvertStrToCellID(strTmp2,cell))                     {     //                    MessageBox(strTmp,"ooo1111",1);                         strTmp3 = ParserCell(cell.row,cell.col);                         sprintf(strTmp,"%s",strTmp3.GetBuffer(strTmp3.GetLength()));                         strTmp3 = "";                         strTmp3.Format("%s",strTmp);                         strRetu = strRetu + "(" + strTmp3 + ")";                     }                     else                         return "#INVALID!";                     //strRetu = strRetu + "<" + _T(strTmp) + "";     //                MessageBox(strTmp,"ooo2222",1);                 }             }              nStatus = 0;             nTmp = -1 ;             memset(strTmp,0,200);              if (!((i+1 = nLen)&&((strExpression.GetAt(i)=''''0'''') &&                  (strExpression.GetAt(i)<=''''9''''))))             {                 strTmp3 = "";                 strTmp3.Format("%c",lpstr[i]);//strExpression.GetAt(i));                 strRetu = strRetu + strTmp3;             }         }         else if ((strExpression.GetAt(i)=''''A'''') && (strExpression.GetAt(i)<=''''Z''''))         {             nStatus      
展开更多 50%)
分享

猜你喜欢

类似EXCEL的报表类库

C语言教程 C语言函数
类似EXCEL的报表类库

类似EXCEL的报表类库(更新)

编程语言 网络编程
类似EXCEL的报表类库(更新)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VC实现类似EXCEL的报表类库

编程语言 网络编程
VC实现类似EXCEL的报表类库

类似EXCEL的开发库(更新)

C语言教程 C语言函数
类似EXCEL的开发库(更新)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Excel报表汇总妙招

excel
Excel报表汇总妙招

调用Access数据库的报表

编程语言 网络编程
调用Access数据库的报表

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

串口通讯及其在VB平台下的实现

串口通讯及其在VB平台下的实现

树视控件在多文档中的使用

树视控件在多文档中的使用
下拉加载更多内容 ↓