当前位置: 首页 > news >正文

在哪下载免费的英文版网站模板百度糯米做网站多少钱

在哪下载免费的英文版网站模板,百度糯米做网站多少钱,竞价排名的优缺点,wordpress中英文菜单VBA 简介 Microsoft Office软件通常使用VBA来扩展Windows的应用程序功能,Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言。 在VBA的参考手册中就可以看到具体函数、属性的用法,Qt操作Excel主要通过 QAxObj…

VBA 简介   

        Microsoft Office软件通常使用VBA来扩展Windows的应用程序功能,Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言。 在VBA的参考手册中就可以看到具体函数、属性的用法,Qt操作Excel主要通过 QAxObject + Excel VBA来实现!关于Qt对Excel的操作,网上的资料挺多的,但大多数都是比较基础的,关于插入工作表(至最后一行)、删除工作表、合并/拆分单元格、设置单元格背景色、设置单元格边框色、设置单元格字体(类型、大小、加粗、斜体、下划线、颜色等)、以及设置单元格对齐方式等用法都没有怎么提到,今天就总结一下有关Qt对Excel的操作。Qt操作Excel,无论后缀是xls还是xlsx都可以。下图是Excel VBA参考手册,内容不算太全!

 Excel读取

假设已存在一个excel文件,

主要读取内容:标题,工作表数目,工作表名称,起始行,起始列,行数,列数,单元格内容。

 

QAxObject excel("Excel.Application");  excel.setProperty("Visible", true);  QAxObject *work_books = excel.querySubObject("WorkBooks");  work_books->dynamicCall("Open (const QString&)", QString("E:/test.xlsx"));
QVariant title_value = excel.property("Caption");  //获取标题qDebug()<<QString("excel title : ")<<title_value;  QAxObject *work_book = excel.querySubObject("ActiveWorkBook");  QAxObject *work_sheets = work_book->querySubObject("Sheets");  //Sheets也可换用WorkSheetsint sheet_count = work_sheets->property("Count").toInt();  //获取工作表数目qDebug()<<QString("sheet count : ")<<sheet_count;  for(int i=1; i<=sheet_count; i++)  {  QAxObject *work_sheet = work_book->querySubObject("Sheets(int)", i);  //Sheets(int)也可换用Worksheets(int)QString work_sheet_name = work_sheet->property("Name").toString();  //获取工作表名称
QString message = QString("sheet ")+QString::number(i, 10)+ QString(" name");qDebug()<<message<<work_sheet_name;  }if(sheet_count > 0){
QAxObject *work_sheet = work_book->querySubObject("Sheets(int)", 1);  QAxObject *used_range = work_sheet->querySubObject("UsedRange");  QAxObject *rows = used_range->querySubObject("Rows");  QAxObject *columns = used_range->querySubObject("Columns");  int row_start = used_range->property("Row").toInt();  //获取起始行   int column_start = used_range->property("Column").toInt();  //获取起始列int row_count = rows->property("Count").toInt();  //获取行数int column_count = columns->property("Count").toInt();  //获取列数for(int i=row_start; i{  for(int j=column_start; j{  QAxObject *cell = work_sheet->querySubObject("Cells(int,int)", i, j);  QVariant cell_value = cell->property("Value");  //获取单元格内容QString message = QString("row-")+QString::number(i, 10)+QString("-column-")+QString::number(j, 10)+QString(":");qDebug()<<message<<cell_value;  }  }  }

效果如下:

 

 Excel增、删、改

主要操作:

  • 设置标题
  • 插入工作表(至最后一行)
  • 设置工作表名称
  • 删除工作表
  • 设置单元格内容
  • 设置单元格字体(类型、大小、加粗、斜体、下划线、颜色等)
  • 设置单元格对齐方式
  • 设置单元格高度、宽度
  • 设置单元格背景色、边框色
  • 合并/拆分单元格
  • 清空单元格

代码如下:

QAxObject excel("Excel.Application");  excel.setProperty("Visible", true);  QAxObject *work_books = excel.querySubObject("WorkBooks");  work_books->dynamicCall("Open(const QString&)", "E:\\test.xlsx");excel.setProperty("Caption", "Qt Excel");QAxObject *work_book = excel.querySubObject("ActiveWorkBook");  QAxObject *work_sheets = work_book->querySubObject("Sheets");  //Sheets也可换用WorkSheets//删除工作表(删除第一个)QAxObject *first_sheet = work_sheets->querySubObject("Item(int)", 1);first_sheet->dynamicCall("delete");//插入工作表(插入至最后一行)int sheet_count = work_sheets->property("Count").toInt();  //获取工作表数目QAxObject *last_sheet = work_sheets->querySubObject("Item(int)", sheet_count);QAxObject *work_sheet = work_sheets->querySubObject("Add(QVariant)", last_sheet->asVariant());
last_sheet->dynamicCall("Move(QVariant)", work_sheet->asVariant());work_sheet->setProperty("Name", "Qt Sheet");  //设置工作表名称//操作单元格(第2行第2列)QAxObject *cell = work_sheet->querySubObject("Cells(int,int)", 2, 2);cell->setProperty("Value", "Java C++ C# PHP Perl Python Delphi Ruby");  //设置单元格值cell->setProperty("RowHeight", 50);  //设置单元格行高cell->setProperty("ColumnWidth", 30);  //设置单元格列宽cell->setProperty("HorizontalAlignment", -4108); //左对齐(xlLeft):-4131  居中(xlCenter):-4108  右对齐(xlRight):-4152cell->setProperty("VerticalAlignment", -4108);  //上对齐(xlTop)-4160 居中(xlCenter):-4108  下对齐(xlBottom):-4107cell->setProperty("WrapText", true);  //内容过多,自动换行//cell->dynamicCall("ClearContents()");  //清空单元格内容QAxObject* interior = cell->querySubObject("Interior");interior->setProperty("Color", QColor(0, 255, 0));   //设置单元格背景色(绿色)QAxObject* border = cell->querySubObject("Borders"); border->setProperty("Color", QColor(0, 0, 255));   //设置单元格边框色(蓝色)QAxObject *font = cell->querySubObject("Font");  //获取单元格字体font->setProperty("Name", QStringLiteral("华文彩云"));  //设置单元格字体font->setProperty("Bold", true);  //设置单元格字体加粗font->setProperty("Size", 20);  //设置单元格字体大小font->setProperty("Italic", true);  //设置单元格字体斜体font->setProperty("Underline", 2);  //设置单元格下划线font->setProperty("Color", QColor(255, 0, 0));  //设置单元格字体颜色(红色)//设置单元格内容,并合并单元格(第5行第3列-第8行第5列)QAxObject *cell_5_6 = work_sheet->querySubObject("Cells(int,int)", 5, 3);cell_5_6->setProperty("Value", "Java");  //设置单元格值QAxObject *cell_8_5 = work_sheet->querySubObject("Cells(int,int)", 8, 5);cell_8_5->setProperty("Value", "C++");QString merge_cell;merge_cell.append(QChar(3 - 1 + 'A'));  //初始列merge_cell.append(QString::number(5));  //初始行merge_cell.append(":");merge_cell.append(QChar(5 - 1 + 'A'));  //终止列merge_cell.append(QString::number(8));  //终止行QAxObject *merge_range = work_sheet->querySubObject("Range(const QString&)", merge_cell);merge_range->setProperty("HorizontalAlignment", -4108);
merge_range->setProperty("VerticalAlignment", -4108);merge_range->setProperty("WrapText", true);merge_range->setProperty("MergeCells", true);  //合并单元格//merge_range->setProperty("MergeCells", false);  //拆分单元格//work_book->dynamicCall("Save()");  //保存文件(为了对比test与下面的test2文件,这里不做保存操作) work_book->dynamicCall("SaveAs(const QString&)", "E:\\test2.xlsx");  //另存为另一个文件 work_book->dynamicCall("Close(Boolean)", false);  //关闭文件excel.dynamicCall("Quit(void)");  //退出

 

效果如下:

操作前:

Qt之操作Excel

操作后:

Qt之操作Excel

    到这里很多人也许都在纳闷,单元格的宏怎么获取的?比如对齐方式(居中对齐),为什么值是-4108,而不是其他值呢?当然那不是我随便写的,自己可以录制宏,然后跟踪。

看下图:

Qt之操作Excel

http://www.yayakq.cn/news/537016/

相关文章:

  • 网站建设平台选用及分析wordpress文章存在哪
  • 番禺建设网站公司哪家好网红营销视频
  • 怎样做网站分析总结校园设计网站
  • 娱乐网站建设ppt模板太仓市质监站网址
  • 网站侧边栏菜单自己做的网站抬头在哪里改
  • 阜阳h5网站建设焦作住房和城乡建设厅网站
  • 响应式网站建设看什么书北京php网站建设
  • 网站seo分析常用的工具是做电商哪个设计网站比较好
  • 网站开发合同免费模板世界十大建筑设计事务所
  • 网站开发先做后台还是前台张雪峰谈广告学就业
  • 伊春市网站建设怎么做商业网站模板
  • 广东电商网站建设ps软件下载安装
  • 网站备案 非经营建小公司网站
  • 琪恋网站建设coding部署wordpress
  • 南昌专业制作网站电影网站建设内容
  • 网站搭建书籍推荐微信微商城怎么开通
  • 天猫网站建设的目的wordpress小工具制作
  • 在线代理网页浏览网站怎么做前端网站
  • 上海商城网站制作相册图片合集
  • 做美团团购网站android应用软件开发
  • 邳州微网站开发战鼓网这种网站怎么做
  • 网站建设 青岛墨鱼wordpress主题
  • 中华住房和城乡建设厅网站企业网站模板建设
  • 山东网站优化wordpress+示例
  • 网站api怎么做的宝安多屏网站建设公司好吗
  • 信息爆炸的时代做网站网络营销怎么推广
  • 下载官方购物网站怎么做网站页面
  • 自己做的网站怎么绑定域名网络安全薪水一般多少
  • 设计比较有特色的网站网站开发快速盈利
  • 河南华盛建设集团网站软件网站开发甘肃