VC中ListCtrl控件中数据导出为CSV文件的问题
请问使用VC中ListCtrl控件显示表格数据,然后将ListCtrl控件中所有数据导出为CSV文件?表头也要导出到CSV文件的首行中。分已加!分又加!当然是取LISTC...
请问使用VC中ListCtrl控件显示表格数据,然后将ListCtrl控件中所有数据导出为CSV文件?表头也要导出到CSV文件的首行中。
分已加! 分又加!
当然是取LISTCTRL中的数据存为CSV文件,没你想得那么复杂。
2L,我出200分就是要你们帮我设计算法,嘿嘿。 展开
分已加! 分又加!
当然是取LISTCTRL中的数据存为CSV文件,没你想得那么复杂。
2L,我出200分就是要你们帮我设计算法,嘿嘿。 展开
展开全部
不知道你哪点不会。我提几个关键函数吧。
csv文件其实就是txt文件,只是每个格子用“,”逗号分隔,你把csv转为txt文件,打开看就知道了。
所以往csv里写东西的函数为:
CStdioFile m_file;
CString filePath = "D:\\TEST.CSV";
char cMsg[] = "aa,bb,cc,dd,ee";
if(m_file.Open((LPCTSTR)filePath,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite|CFile::typeText))
{
m_file.SeekToEnd();
m_file.WriteString((LPCTSTR)cMsg);
m_file.WriteString("\n");
m_file.Close();
}
上面的代码为测试过可以写。
这个问题解决后,读就不用说了吧,WriteString改为ReadString就可以了,是读一行,读出来的字符串会是以逗号分隔,你就做字符串解析就可以了。推荐你用这个方法strtok(),用指定字符分割字符串最好用了。自己查查。
接下来就是一个读listctrl数据的问题了。我也简单的说下吧。
表头:只能死插入了。一般表头都是死的。你在initial函数里写表头的时候同时也把他写到csv里了。因为我没找到获取表头的方法。。。
DWORD dwStyle= m_list.GetExtendedStyle();
dwStyle|= LVS_EX_FULLROWSELECT; //add extra dwStyle attrubites uses |= .
dwStyle|= LVS_EX_GRIDLINES;
m_list.SetExtendedStyle(dwStyle);
m_list.InsertColumn( 0, "第一列", LVCFMT_LEFT,233,0);
m_list.InsertColumn( 1, "第二列", LVCFMT_LEFT,110,1);
再用上面的WriteString写“第一列,第二列”这个CString。你要动态弄得话就全弄成变量,还要用循环去判断。算法我就不帮你设计了。
表里的内容,用 CString text = m_list.GetItemText(0,0);就是获得第一列第一行的格子里面的值。也是用循环去写算法实现拼装字符串,记得用“,”分隔,然后写进csv。
从csv读也是一样的,只是反过来而已,这里就不赘述了。
写程式的乐趣就在于设计算法。我把实现方法告诉你了,自己去设计下算法吧。
csv文件其实就是txt文件,只是每个格子用“,”逗号分隔,你把csv转为txt文件,打开看就知道了。
所以往csv里写东西的函数为:
CStdioFile m_file;
CString filePath = "D:\\TEST.CSV";
char cMsg[] = "aa,bb,cc,dd,ee";
if(m_file.Open((LPCTSTR)filePath,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite|CFile::typeText))
{
m_file.SeekToEnd();
m_file.WriteString((LPCTSTR)cMsg);
m_file.WriteString("\n");
m_file.Close();
}
上面的代码为测试过可以写。
这个问题解决后,读就不用说了吧,WriteString改为ReadString就可以了,是读一行,读出来的字符串会是以逗号分隔,你就做字符串解析就可以了。推荐你用这个方法strtok(),用指定字符分割字符串最好用了。自己查查。
接下来就是一个读listctrl数据的问题了。我也简单的说下吧。
表头:只能死插入了。一般表头都是死的。你在initial函数里写表头的时候同时也把他写到csv里了。因为我没找到获取表头的方法。。。
DWORD dwStyle= m_list.GetExtendedStyle();
dwStyle|= LVS_EX_FULLROWSELECT; //add extra dwStyle attrubites uses |= .
dwStyle|= LVS_EX_GRIDLINES;
m_list.SetExtendedStyle(dwStyle);
m_list.InsertColumn( 0, "第一列", LVCFMT_LEFT,233,0);
m_list.InsertColumn( 1, "第二列", LVCFMT_LEFT,110,1);
再用上面的WriteString写“第一列,第二列”这个CString。你要动态弄得话就全弄成变量,还要用循环去判断。算法我就不帮你设计了。
表里的内容,用 CString text = m_list.GetItemText(0,0);就是获得第一列第一行的格子里面的值。也是用循环去写算法实现拼装字符串,记得用“,”分隔,然后写进csv。
从csv读也是一样的,只是反过来而已,这里就不赘述了。
写程式的乐趣就在于设计算法。我把实现方法告诉你了,自己去设计下算法吧。
展开全部
不知道你哪点不会。我提几个关键函数吧。
csv文件其实就是txt文件,只是每个格子用“,”逗号分隔,你把csv转为txt文件,打开看就知道了。
所以往csv里写东西的函数为:
CStdioFile m_file;
CString filePath = "D:\\TEST.CSV";
char cMsg[] = "aa,bb,cc,dd,ee";
if(m_file.Open((LPCTSTR)filePath,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite|CFile::typeText))
{
m_file.SeekToEnd();
m_file.WriteString((LPCTSTR)cMsg);
m_file.WriteString("\n");
m_file.Close();
}
上面的代码为测试过可以写。
这个问题解决后,读就不用说了吧,WriteString改为ReadString就可以了,是读一行,读出来的字符串会是以逗号分隔,你就做字符串解析就可以了。推荐你用这个方法strtok(),用指定字符分割字符串最好用了。自己查查。
接下来就是一个读listctrl数据的问题了。我也简单的说下吧。
表头:只能死插入了。一般表头都是死的。你在initial函数里写表头的时候同时也把他写到csv里了。因为我没找到获取表头的方法。。。
DWORD dwStyle= m_list.GetExtendedStyle();
dwStyle|= LVS_EX_FULLROWSELECT; //add extra dwStyle attrubites uses |= .
dwStyle|= LVS_EX_GRIDLINES;
m_list.SetExtendedStyle(dwStyle);
m_list.InsertColumn( 0, "第一列", LVCFMT_LEFT,233,0);
m_list.InsertColumn( 1, "第二列", LVCFMT_LEFT,110,1);
再用上面的WriteString写“第一列,第二列”这个CString。你要动态弄得话就全弄成变量,还要用循环去判断。算法我就不帮你设计了。
表里的内容,用 CString text = m_list.GetItemText(0,0);就是获得第一列第一行的格子里面的值。也是用循环去写算法实现拼装字符串,记得用“,”分隔,然后写进csv。
从csv读也是一样的,只是反过来而已,这里就不赘述了。
写程式的乐趣就在于设计算法。我把实现方法告诉你了,自己去设计下算法吧。
csv文件其实就是txt文件,只是每个格子用“,”逗号分隔,你把csv转为txt文件,打开看就知道了。
所以往csv里写东西的函数为:
CStdioFile m_file;
CString filePath = "D:\\TEST.CSV";
char cMsg[] = "aa,bb,cc,dd,ee";
if(m_file.Open((LPCTSTR)filePath,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite|CFile::typeText))
{
m_file.SeekToEnd();
m_file.WriteString((LPCTSTR)cMsg);
m_file.WriteString("\n");
m_file.Close();
}
上面的代码为测试过可以写。
这个问题解决后,读就不用说了吧,WriteString改为ReadString就可以了,是读一行,读出来的字符串会是以逗号分隔,你就做字符串解析就可以了。推荐你用这个方法strtok(),用指定字符分割字符串最好用了。自己查查。
接下来就是一个读listctrl数据的问题了。我也简单的说下吧。
表头:只能死插入了。一般表头都是死的。你在initial函数里写表头的时候同时也把他写到csv里了。因为我没找到获取表头的方法。。。
DWORD dwStyle= m_list.GetExtendedStyle();
dwStyle|= LVS_EX_FULLROWSELECT; //add extra dwStyle attrubites uses |= .
dwStyle|= LVS_EX_GRIDLINES;
m_list.SetExtendedStyle(dwStyle);
m_list.InsertColumn( 0, "第一列", LVCFMT_LEFT,233,0);
m_list.InsertColumn( 1, "第二列", LVCFMT_LEFT,110,1);
再用上面的WriteString写“第一列,第二列”这个CString。你要动态弄得话就全弄成变量,还要用循环去判断。算法我就不帮你设计了。
表里的内容,用 CString text = m_list.GetItemText(0,0);就是获得第一列第一行的格子里面的值。也是用循环去写算法实现拼装字符串,记得用“,”分隔,然后写进csv。
从csv读也是一样的,只是反过来而已,这里就不赘述了。
写程式的乐趣就在于设计算法。我把实现方法告诉你了,自己去设计下算法吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种什么都不会,等着人家把饭送到嘴里的低能儿,不值得浪费时间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用VC实现把数据存为CSV文件那是很方便的.
所以我想,你是不会取LISTCTRL中的数据吧.
如果是这样,就HI我吧
所以我想,你是不会取LISTCTRL中的数据吧.
如果是这样,就HI我吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询