将Control List中的数据导入类Excel的表格中,(使用了.csv文件)

来源:互联网 发布:网络广告创意方法 编辑:程序博客网 时间:2024/05/17 20:49

1.将一个图(1)所示的列表中的数据导入一个类Excel的表格中,供医生观看,最终结果用Excel打开,如图(2)

图(1)

图(2)

 

2.解决思路

(1)如果用vc将列表中的数据导入Excel的话,需要用ADO连接Excel,并且将数据写入Excle中,比较麻烦。

(2).csv格式的文件是一种比较特殊的文件,是将字符串用逗号‘,’分隔的一种文件,可以用文本文件打开,也可以用Excel的方式打开。

(3)可以利用.csv文件的特点将每一列用逗号‘,’分隔,达到表格的效果

(4).csv文件的写入和VC最常使用的文本文件与二进制文件的写入方式是一样的,所以可以用写文件的方式写.csv文件

(5)利用了MFC的CFile类

3.代码分析

void CStatisticDlg::OnBnClickedBtnSaveTotalnum(){// TODO: Add your control notification handler code here//CADODatabase* pDbConn = new CADODatabase();//CString strConn;//strConn = _T("Provider=Microsoft.Ace.OleDb.12.0;Data Source=d:\\wc.xls;Extended Properties='Excel 12.0;HDR=NO'");////Provider=Microsoft.Jet.OLEDB.4.0; Excel 12.0; for excel 2003//if(!pDbConn->Open(strConn))//{//MessageBox(_T("连接Excel表格失败!"),_T("失败"));//return;//}if (m_TotalNumList.GetItemCount() > 0){CString strFileName = _T("胶片总数.csv");CFile file;if (!file.Open(strFileName,CFile::modeCreate | CFile::modeWrite)){MessageBox(_T("文件此时不能打开"),_T("提示"));return;}CString strHead = _T("工作站名,总数,8INX10IN,14INX17IN,10INX12IN,10INX14IN,11INX14IN,11INX17IN,14INX14IN,8_5INX11IN,24CMX24CM,24CMX30CM,A4,A3\r\n");file.Write(strHead,strHead.GetLength());for (int nItem=0;nItem<m_TotalNumList.GetItemCount();nItem++){CString strData;for (int i=0;i<14;i++){strData += m_TotalNumList.GetItemText(nItem,i);if (13 == i){strData += _T("\r\n");}else{strData += _T(",");}}file.Write(strData,strData.GetLength());}file.Close();}}


 

原创粉丝点击