MFC中怎么读取Excel文件里的每个单元格内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中怎么读取Excel文件里的每个单元格内容相关的知识,希望对你有一定的参考价值。

//第一步:打开文件
CFile f;
CFileException e;
// 打开文件
if (!f.Open("D:\\Book1.xls", CFile::modeRead, &e))

TCHAR szError[1024];
e.GetErrorMessage(szError, 1024);
AfxMessageBox(szError);
return;

//第二步:读取版本号
// 读取版本
while (dwPos < dwLen)

nRead = f.Read((void*)&RecNo, 2);
if (RecNo == XL_BOF)

WORD Ver, Type;
f.Read((void*)&RecLen, 2);
f.Read((void*)&Ver, 2);
f.Read((void*)&Type, 2);
f.Seek(RecLen, CFile::current);
int ver = 0;
switch (Ver)

case BIFF7:
ver = 7;
break;
case BIFF8:
ver = 8;
AfxMessageBox("Biff8");
break;

int type = 0;
switch (Type)

case WORKBOOK:
type = 5;
AfxMessageBox("Workbook");
break;
case WORKSHEET:
type = 16;
AfxMessageBox("Worksheet");
break;
case CHART:
type = 32;
AfxMessageBox("Chart");
break;

break;

dwPos = f.GetPosition();

//第三步:读其它数据
f.SeekToBegin();
dwPos = f.GetPosition();
// 读表格数据
while (dwPos < dwLen)

nRead = f.Read((void*)&RecNo, 2);
switch (RecNo)

case XL_BOF:

f.Read((void*)&RecLen, 2);
AfxMessageBox("Bof");

break;
case XL_BOUNDSHEET:

DWORD temp;
BYTE visi;
BYTE type;
TCHAR name;
f.Read((void*)&RecLen, 2);
f.Read((void*)&temp, 4);
f.Read((void*)&visi, 1);
f.Read((void*)&type, 1);
f.Read((void*)&StrLen, 2);
f.Read((void*)&name, StrLen);
char buf[128];
memset(buf, 0x0, 128);
strncpy(buf, &name, StrLen);
AfxMessageBox(buf);

break;
case XL_DIMENSION:
f.Read((void*)&RecLen, 2);
f.Seek(RecLen, CFile::current);
AfxMessageBox("Dimension");
break;
case 0xE2: // INTERFACED
f.Read((void*)&RecLen, 2);
AfxMessageBox("e2");
break;
case XL_SST:
f.Read((void*)&RecLen, 2);
f.Seek(RecLen, CFile::current);
AfxMessageBox("SST");
break;
case XL_NUMBER:
f.Read((void*)&RecLen, 2);
AfxMessageBox("Number");
break;
case XL_STRING:
f.Read((void*)&RecLen, 2);
AfxMessageBox("String");
break;
case XL_RK:
f.Read((void*)&RecLen, 2);
AfxMessageBox("RK");
break;
case XL_LABEL:

f.Read((void*)&RecLen, 2);
AfxMessageBox("Label");

break;
case 0xD6:
f.Read((void*)&RecLen, 2);
AfxMessageBox("RString");
break;
case XL_EOF:
dwPos = dwLen;
AfxMessageBox("Eof");
break;
default:
nRead = f.Read((void*)&RecLen, 2);
if (nRead == 0)
dwPos = dwLen;
break;


//第四步:关闭文件
f.Close();
参考技术A 有专门读写Excel操作的类,可以上网找下。

以上是关于MFC中怎么读取Excel文件里的每个单元格内容的主要内容,如果未能解决你的问题,请参考以下文章

python读取excel某一单元格内容然后显示在网页上?

excel中的一列每个单元格内容的前面统一新增同样的文字怎么做?

excel中的一列每个单元格内容的前面统一添加同样的文字怎么做?

Excel 需要引用另一个表格里的数据怎么写公式阿

想用vs2010的c,读取excel里的数字,怎么读取呢

电子表格文字怎么换行?