c++ 怎样将数据库导出excel表格格数据导出

博客访问: 1349155
博文数量: 290
博客积分: 5485
博客等级: 大校
技术积分: 3687
注册时间:
多读书,多做事,广交朋友,趣味丛生
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
方法一用mysql的命令和shellselect * into outfile './bestlovesky.xls' from bestlovesky where 1 order by id desc& limit 0, 50;方法二 把bestlovesky.xls以文本方式打开,然后另存为,在编码选择ansi编码,保存echo "select id,name from bestlovesky where 1 order by id desc limit 0, 50;"| /usr/local/mysql/bin/mysql -h127.0.0.1-uroot -p123456 > /data/bestlovesky.xls方法三mysql your_database &-uroot &-p &-e &"select&& *&& from&& test.table2 "&& >&& /home/test.xls用sz命令将文件下载到本地,打开如果中文乱码,因为office默认的是gb2312编码,服务器端生成的很有可能是utf-8编码,这个时候你有两种选择,1.在服务器端使用iconv来进行编码转换 iconv -futf8 -tgb2312 -otest2.xls test.xls如果转换顺利,那么从server上下载下来就可以使用了。转换如果不顺利,则会提示:iconv: illegal input sequence at position 1841 类似于这样的错误,先把test.xls下载下来,这个时候文件是utf-8编码的,用excel打开,乱码。把test.xls以文本方式打开,然后另存为,在编码选择ANSI编码,保存。
阅读(27802) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。君,已阅读到文档的结尾了呢~~
海量数据导出excel的方法与实现
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
海量数据导出excel的方法与实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口用c++如何将数据存到Excel
[问题点数:20分,结帖人luoryan]
用c++如何将数据存到Excel
[问题点数:20分,结帖人luoryan]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2009年9月 C/C++大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。 上传我的文档
 下载
 收藏
所有文档均来自于网络,所搜集文档几乎涵盖了所有行业,均严格按照道客巴巴->文档分类->所有文档->分类。对每篇文档详细释义做出了合理推敲,并对其精确划分了类别。例: 新员工试用期考核表->(标题)->所有文档->(企业档案)->(分类)->绩效管理。旨在让大家把搜索到的文档对照标题,参照分类。一看便一目了然成竹在胸,放心下载,安心使用。笔者主要搜集了一些常用文档,如论文,工作总结,合同协议,规章制度,报告,方案,课件,试题,试卷,答案,职业资格考试,策划营销.....等等一些教育学习,办公写作,商业经营,实用性极强的文档,您若觉得对您日常学习,商业经营,社交沟通,办公写作有所帮助的话就关注我吧
 下载此文档
正在努力加载中...
CC++读写Excel表格文件
下载积分:1000
内容提示:CC++读写Excel表格文件
文档格式:DOC|
浏览次数:13|
上传日期: 02:30:22|
文档星级:
该用户还上传了这些文档
CC++读写Excel表格文件
官方公共微信天极传媒:天极网全国分站
您现在的位置:
& &&C++将DBGrid中数据导出到Word和Excel
C++将DBGrid中数据导出到Word和Excel
天极网 11:07
     
  经常看到有网友发帖子询问如何将DBGrid中的内容导出到或Word文档中,于是笔者花了点时间写了以下两个函数,分别实现将DBGrid中数据导出到Word和Excel文档。需要注意的是DBGrid中的数据并不代表数据库中所有的数据,因为数据集在打开的时候有可能进行了筛选,取决于使用者如何打开这个数据集,总之就是DBGrid中显示多少数据,就导出多少。   一、将DBGrid中的内容导出到Word文档
//---------------------------------------------------------------------------// 将DBGrid中的数据导出到Word文档//---------------------------------------------------------------------------void __fastcall DBGrid2Word(TDBGrid *dbg, String strDocFile){ if(!dbg-&DataSource-&DataSet-&Active) // 数据集没有打开就返回   Variant vWordApp, vTable, vC try {  vWordApp = Variant::CreateObject("Word.Application"); } catch(...) {  MessageBox(0, "启动 Word 出错, 可能是没有安装Word.","DBGrid2Word", MB_OK | MB_ICONERROR);  vWordApp = U   } // 隐藏Word界面 vWordApp.OlePropertySet("Visible", false); // 新建一个文档 vWordApp.OlePropertyGet("Documents").OleFunction("Add"); Variant vSelect = vWordApp.OlePropertyGet("Selection"); // 设置一下字体,大小 vSelect.OlePropertyGet("Font").OlePropertySet("Size", dbg-&Font-&Size); vSelect.OlePropertyGet("Font").OlePropertySet("Name", dbg-&Font-&Name.c_str()); // 要插入表格的行数 int nRowCount(dbg-&DataSource-&DataSet-&RecordCount + 1); nRowCount = nRowCount & 2? 2: nRowC // 要插入表格的列数 int nColCount(dbg-&Columns-&Count); nColCount = nColCount & 1? 1: nColC // 在Word文档中插入与DBGrid行数列数基本相同的一个表格 vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add",   vSelect.OlePropertyGet("Range"),   nRowCount, // 行数   nColCount, // 列数   1, // DefaultTableBehavior:=wdWord9TableBehavior   0); // AutoFitBehavior:=wdAutoFitFixed // 操作这个表格 vTable = vWordApp.OlePropertyGet("ActiveDocument"). OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", 1); // 设置单元格的宽度 for(int i=0; i&nColC i++) {  int nColWidth = dbg-&Columns-&Items[i]-&W  vTable.OlePropertyGet("Columns").OleFunction("Item", i + 1)    .OlePropertySet("PreferredWidthType", 3); // wdPreferredWidthPoints  vTable.OlePropertyGet("Columns").OleFunction("Item", i + 1)    .OlePropertySet("PreferredWidth", nColWidth); } // 先将列名写入Word表格 for(int j=0; j&dbg-&Columns-&C j++) {  vCell = vTable.OleFunction("Cell", 1, j + 1);  vCell.OlePropertySet("Range", dbg-&Columns-&Items[j]-&FieldName.c_str());  // 列名单元格背景颜色 // wdColorGray125  vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", ); } // 将DBGrid中的数据写入Word表格 dbg-&DataSource-&DataSet-&First(); for(int i=0; i&nRowC i++) {  // 63 63 72 75 6E 2E 63 6F 6D  for(int j=0; j&dbg-&Columns-&C j++)  {   vCell = vTable.OleFunction("Cell", i + 2, j + 1);   vCell.OlePropertySet("Range",    dbg-&DataSource-&DataSet-&FieldByName(     dbg-&Columns-&Items[j]-&FieldName)-&AsString.c_str());  }  dbg-&DataSource-&DataSet-&Next(); } // 保存Word文档并退出 vWordApp.OlePropertyGet("ActiveDocument").OleProcedure("SaveAs", strDocFile.c_str()); vWordApp.OlePropertyGet("ActiveDocument").OleProcedure("Close"); Application-&ProcessMessages(); vWordApp.OleProcedure("Quit"); Application-&ProcessMessages(); vWordApp = U // 工作结束 MessageBox(0, "DBGrid2Word 转换结束!","DBGrid2Word", MB_OK | MB_ICONINFORMATION);}  二、将DBGrid中的内容导出到Excel文档
//---------------------------------------------------------------------------// 将DBGrid中的数据导出到Excel文档//---------------------------------------------------------------------------void __fastcall DBGrid2Excel(TDBGrid *dbg, String strXlsFile){ if(!dbg-&DataSource-&DataSet-&Active) // 数据集没有打开就返回   Variant vExcelApp, vS try {  vExcelApp = Variant::CreateObject("Excel.Application"); } catch(...) {  MessageBox(0, "启动 Excel 出错, 可能是没有安装Excel.","DBGrid2Excel", MB_OK | MB_ICONERROR);   } // 隐藏Excel界面 vExcelApp.OlePropertySet("Visible", false); // 新建一个工作表 vExcelApp.OlePropertyGet("Workbooks").OleFunction("Add", 1); // 工作表 // 操作这个工作表 vSheet = vExcelApp.OlePropertyGet("ActiveWorkbook").OlePropertyGet("Sheets", 1); // 设置Excel文档的字体 vSheet.OleProcedure("Select"); vSheet.OlePropertyGet("Cells").OleProcedure("Select"); vExcelApp.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Size", dbg-&Font-&Size); vExcelApp.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Name",dbg-&Font-&Name.c_str()); vExcelApp.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("FontStyle", "常规"); vSheet.OlePropertyGet("Cells", 1, 1).OleProcedure("Select"); // 表格的行数 int nRowCount(dbg-&DataSource-&DataSet-&RecordCount + 1); nRowCount = nRowCount & 2? 2: nRowC // 表格的列数 int nColCount(dbg-&Columns-&Count); nColCount = nColCount & 1? 1: nColC // 设置单元格的宽度 for(int i=0; i&nColC i++) {  int nColWidth = dbg-&Columns-&Items[i]-&W  vExcelApp.OlePropertyGet("Columns", i + 1).OlePropertySet("ColumnWidth", nColWidth / 7); } // 先将列名写入Excel表格 for(int j=0; j&dbg-&Columns-&C j++) {  // 标题行的行高  vExcelApp.OlePropertyGet("Rows", 1).OlePropertySet("RowHeight", 20);  vSheet.OlePropertyGet("Cells", 1, j + 1)   .OlePropertySet("Value", dbg-&Columns-&Items[j]-&FieldName.c_str());  // 设置列名单元格的背景色  Variant vInter = vSheet.OlePropertyGet( "Cells", 1, j + 1).OlePropertyGet("Interior");  vInter.OlePropertySet("ColorIndex", 15); // 灰色  vInter.OlePropertySet("Pattern", 1); // xlSolid  vInter.OlePropertySet("PatternColorIndex", -4105); // xlAutomatic } // 将DBGrid中的数据写入Excel表格 dbg-&DataSource-&DataSet-&First(); for(int i=0; i&nRowC i++) {  // 普通数据行的行高16  vExcelApp.OlePropertyGet("Rows", i + 2).OlePropertySet("RowHeight", 16);  // 63 63 72 75 6E 2E 63 6F 6D  for(int j=0; j&dbg-&Columns-&C j++)  {   vSheet.OlePropertyGet("Cells", i + 2, j + 1).OlePropertySet("Value",     dbg-&DataSource-&DataSet-&FieldByName(      dbg-&Columns-&Items[j]-&FieldName)-&AsString.c_str());  }  dbg-&DataSource-&DataSet-&Next(); } // 保存Excel文档并退出 vExcelApp.OlePropertyGet("ActiveWorkbook").OleFunction("SaveAs", strXlsFile.c_str()); vExcelApp.OleFunction("Quit"); vSheet = U vExcelApp = U // 工作结束 MessageBox(0, "DBGrid2Excel 转换结束!","DBGrid2Excel", MB_OK | MB_ICONINFORMATION);}###adv###
(作者:MOLLY编译责任编辑:方舟)
欢迎在新浪微博上关注我们
办公软件IT新闻整机

我要回帖

更多关于 c 数据库导出excel 的文章

 

随机推荐