导出CListCtrl控件到Excel文件

admin 2025-10-20 阅读:6 评论:0
:http://file.ddvip.com/2007_03/1174134557_ddvip_875.rar CListCtrl获得列的属性可以使用BOOL CListCtrl::GetColumn( int nCol, LVCOLUMN...

:http://file.ddvip.com/2007_03/1174134557_ddvip_875.rar

CListCtrl获得列的属性可以使用BOOL CListCtrl::GetColumn( int nCol, LVCOLUMN* pColumn ),nCol为需要获得获得属性值的列序号,pColumn 为 LVCOLUMN 结构体的指针。LVCOLUMN结构体中的 UINT mask 作为输入whatsapp网页版,决定返回哪些属性的值,如果 mask 的值包含 LVCF_TEXT ,则需要将字符串缓存的首地址指针置入结构体中的 LPTSTR pszText; 变量,缓存大小置入 int cchTextMax; 变量。

使用这个函数的主要问题是主要问题期望返回 LVCF_TEXT ,设置了 pszText 却没有设置 cchTextMax 变量,并且通常都在分配 LVCOLUMN 结构体空间时将所分配的内存清0,因此总是不能返回列名。反而是没有清0所分配空间telegram中文版,直接设置 mask 为 LVCF_TEXT ,那么可能可以获得列名的值。当然只要正确设置 pszText 和 cchTextMax 就不会有这些问题。

还有一个问题是列的数量。没有直接的函数可以获得列的数量,只能从0开始不断自增 nCol 的值,判断 GetColumn( nCol,pColumn ) 的返回值是否为 False 以计算列的数量。

一封装好的导出CListCtrl数据函数如下:///////////////////////////////////////////////////////////////////////////////

//  void GetExcelDriver(CListCtrl* pList, CString strTitle)

//  参数:

//    pList    需要导出的List控件指针

//    strTitle  导出的数据表标题

//  说明:

//    导出CListCtrl控件的全部数据到Excel文件。Excel文件名由用户通过“另存为”

//    对话框输入指定。创建名为strTitle的工作表whatsapp web,将List控件内的所有数据(包括

//    列名和数据项)以文本的形式保存到Excel工作表中。保持行列关系。

//

//  edit by @dotlive.cnblogs.com

///////////////////////////////////////////////////////////////////////////////

void ExportListToExcel(CListCtrl* pList, CString strTitle)

CString warningStr;

if (pList->GetItemCount ()>0) {

CDatabase database;

CString sDriver;

CString sExcelFile;

CString sSql;

CString tableName = strTitle;

// 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls)"

sDriver = GetExcelDriver();

if (sDriver.IsEmpty())

// 没有发现Excel驱动

AfxMessageBox("没有安装Excel!

请先安装Excel软件才能使用导出功能!");

return;

///默认文件名

if (!GetDefaultXlsFileName(sExcelFile))

return;

// 创建进行存取的字符串

sSql.Format("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB="%s";DBQ=%s",sDriver,

sExcelFile, sExcelFile);

// 创建数据库 (既Excel表格文件)

if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )

// 创建表结构

int i;

LVCOLUMN columnData;

CString columnName;

int columnNum = 0;

CString strH;

CString strV;

sSql = "";

strH = "";

columnData.mask = LVCF_TEXT;

columnData.cchTextMax =100;

columnData.pszText = columnName.GetBuffer (100);

for(i=0;pList->GetColumn(i,&columnData);i++)

if (i!=0)

sSql = sSql + ", " ;

strH = strH + ", " ;

sSql = sSql + " " + columnData.pszText +" TEXT";

strH = strH + " " + columnData.pszText +" ";

columnName.ReleaseBuffer ();

columnNum = i;

sSql = "CREATE TABLE " + tableName + " ( " + sSql + " ) ";

database.ExecuteSQL(sSql);

// 插入数据项

int nItemIndex;

for (nItemIndex=0;nItemIndexGetItemCount ();nItemIndex++){

strV = "";

for(i=0;iGetItemText(nItemIndex,i) +"'' ";

sSql = "INSERT INTO "+ tableName

+" ("+ strH + ")"

+" VALUES("+ strV + ")";

database.ExecuteSQL(sSql);

// 关闭数据库

database.Close();

warningStr.Format("导出文件保存于%s!",sExcelFile);

AfxMessageBox(warningStr);

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

热门文章
  • 详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略

    详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略
    一、下载与安装WhatsApp WhatsApp是一款全球使用范围极广的即时通讯软件,不仅可以实现文本聊天,还能进行语音、视频通话WhatsApp中文版,发送文件等功能。由于众所周知的原因,国内用户想要下载和安装WhatsApp可能会遇到一些困难。不过,只要按照以下步骤操作,就能顺利完成WhatsApp的下载和安装。 首先,我们需要解决的是下载问题。由于WhatsApp在国内的应用商店无法直接下载,所以我们需要寻找其他的下载途径。Android用户可以选择到各大安卓市场搜索下...
  • 苹果IOS5.1.1机完美越狱

    苹果IOS5.1.1机完美越狱
    越狱工具下载:(需手动复制: http://bbs./read-htm-tid-4804612.html ) 详细的越狱教程: Absinthe 2.0.4的越狱方法与Absinthe 1.0的越狱方法完全一样,非常简单的“傻瓜一键式”。不过这里绿毒有说明,最好重新刷固件。支持越狱设备IOS5.1.1的固件下载地址请点击本站的IOS固件下载,看下图: 下载完固件之后,把设备连接iTunes,开始刷固件。你也可以选择不刷,但是在越狱的过程之中,新的系统在越狱时会比较的顺利,...
  • 电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹

    电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹
    1. 怎么找到微信聊天图片在哪个文件夹里 图片保存路径:/storage/emulated/tencent/MicroMsg/WeiXin/文件夹,这个是完整路径。而在文件夹中只需要找到/tencent/MicroMsg/WeiXinWhatsApp中文版,就可以了,前面两个文件夹是系统根目录。以下是保存及查找图片的方法步骤介绍。 第一步、找到桌面的微信APP,直接点击打开这个微信的APP。 2. 电脑微信图片保存在哪个文件夹 个人微信文件夹。 电脑版微信聊天的图片,都保存到...
  • Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式

    Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式
    Meta(最近更名为 Meta AI)悄然宣布,WhatsApp 将在 Windows 11 上放弃 UWP(WinUI)WhatsApp中文版,退回采用基于 Chromium 的容器。这意味着 WhatsApp 又回到了几年前的样子。由于 web.whatsapp.com 一直领先于 Windows 应用开发,它确实拥有一些新功能,但速度更慢,占用更多内存。 如果独立开发者因为无力维护所有平台的代码库而选择 Web 应用程序,那是一回事,但当像 Meta 这样价值万亿美元...
  • 小米下載WhatsApp的完整指南:安装与使用注意事项

    小米下載WhatsApp的完整指南:安装与使用注意事项
    综上所述,确保您的小米手机具备以上条件,将有助于您顺利下载和安装WhatsApp,享受便捷的通讯服务。在满足这些条件后,您就可以按照后续步骤进行WhatsApp的下载和安装。 2. 下载和安装WhatsApp的具体步骤 在小米手机上下载和安装WhatsApp的具体步骤相对简单,但需注意一些特殊情况。首先,确保你的手机系统已更新到最新版本,以保证最佳的兼容性。由于安卓手机商店内无法直接找到WhatsApp,你可以通过APKPure等第三方应用商店进行下载。打开APKPure应用...