C++Builder 程序员博客
5 Aug
请高手指教
前面有很多人发过帖子问这个问题了 找找看。
老问题了
明天去公司给你代码
妖哥网站
或者ehlib控件
有非常多的类似的问题了…反正我是问过不少了……..搜索下,,答案多多
个人感觉ehlib控件不错,直接导出
贴一个以前的代码, BCB 6.0 通过,不过有好久不用BCB了
//把数据集导出到Excel void __fastcall TDM::ExportDataSetToExcel(TDataSet * DataSet) { if(!DataSet->Active) throw Exception("数据集没有打开!"); if(DataSet->RecordCount==0) throw Exception("没有可以导出的记录"); Variant excel,wb1,ws1,cell; try { excel=Variant::CreateObject("Excel.Application"); try { //excel.Exec(PropertySet("Visible")<<true); wb1=excel.Exec(PropertyGet("WorkBooks")); wb1.Exec(Procedure("Add")); wb1=excel.Exec(PropertyGet("ActiveWorkbook")); Variant v=wb1.Exec(PropertyGet("Worksheets")); ws1=v.Exec(PropertyGet("Item")<<1); int fc=DataSet->Fields->Count; int i=0,j=0; DataSet->DisableControls(); DataSet->First(); for(j=0;j<fc;j++){ ws1.Exec(PropertySet("Cells")<<1<<j+1 <<DataSet->Fields->Fields[j]->DisplayLabel); } while(!DataSet->Eof){ i++; for(j=0;j<fc;j++){ ws1.Exec(PropertySet("Cells")<<i+1<<j+1 <<DataSet->Fields->Fields[j]->Value); } DataSet->Next(); } excel.Exec(PropertySet("Visible")<<true); } catch (Exception &e){ try{ excel.Exec(Procedure("Quit")); } catch(…) { } Application->ShowException(&e); } } __finally { DataSet->EnableControls(); } } //—————————————————————————
ehlib
如果只想简单的转换成.xls,可用文本格式的xls,既快又简单,
唯一的缺点不含控制格式.
列与列用 tab:chr(8)隔开,行与行用 \r\n隔开,
文本格式,写起来太方便了;