如何将mfc中的数据导入到Excel中

如何将mfc中的数据导入到Excel中,第1张

1、首先,打开媒介工具“记事本”,将word文件里需要导入的数据,复制粘贴到记事本当中,然后保存成为txt文件,本例中将txt文件取名为“数据源txt”。

2、打开excel表格,点击“数据”选项卡,找到“自文本”。

3、点击“自文本”,d出下一窗口,选择刚才保存的名为“数据源”的txt类型文件,点击“导入”。因“自文本”方式数据导入默认的只有三种文件类型txt、csv、prn,所以需要事先将word转变为txt。

4、d出“文本导入向导”对话框。选择最适合的文件类型,方便导入后,数据以已选择方式分列。点击“下一步”。

特别注意,如果选的“分隔符号”,则分隔符号必须是英文状态下的符号,否则导入后无法分列。

5、设置分列数据所包含的分隔符号,其实就是导入数据列数的控制,选择分隔符。

示例文档用“,”把每列隔开的,所以选择“逗号”。

完成设定后,点击下一步。

6

6、列数据格式选择”常规“,”常规“选项更为智能。

完成设定后,点击完成。

1、首先在打开的C语言软件中,如下图所示,添加stdioh头文件。

2、然后添加main主函数,如下图所示。

3、接着在下一行,添加返回值return 0,如下图所示。

4、然后添加printf("A\tB\n");语句, \t可以输出空格,如下图所示。

5、接着点击!按钮,执行程序,如下图所示。

6、最后d出控制台,输出了A、B,成功输出了空格了,如下图所示就完成了。

这是我的一个 *** 作过程,可以参考看看(如有更好,也请贴出啊):

void CTestExcelDlg::OnButton2()

{

// TODO: Add your control notification handler code here

_Application ExcelApp;

Workbooks books;

_Workbook book;

Worksheets sheets;

_Worksheet sheet;

Range range;

LPDISPATCH lpDisp = NULL;

//创建Excel 服务器(启动Excel)

if(!ExcelAppCreateDispatch(_T("ExcelApplication"),NULL))

{

AfxMessageBox(_T("启动Excel服务器失败!"));

return;

}

ExcelAppSetVisible(false);

ExcelAppSetUserControl(FALSE);

/得到工作簿容器/

booksAttachDispatch(ExcelAppGetWorkbooks());

/打开一个工作簿,如不存在,则新增一个工作簿/

CString strBookPath =_T("f:\\tmplxls");

try

{

/打开一个工作簿/

lpDisp = booksOpen(strBookPath,

vtMissing, vtMissing,vtMissing, vtMissing, vtMissing,

vtMissing, vtMissing,vtMissing, vtMissing, vtMissing,

vtMissing, vtMissing,vtMissing, vtMissing);

bookAttachDispatch(lpDisp);

}

catch()

{

/增加一个新的工作簿/

lpDisp = booksAdd(vtMissing);

bookAttachDispatch(lpDisp);

}

/得到工作簿中的Sheet的容器/

sheetsAttachDispatch(bookGetSheets());

/打开一个Sheet,如不存在,就新增一个Sheet/

CString strSheetName =_T("Sheet1");

try

{

/打开一个已有的Sheet/

lpDisp =sheetsGetItem(_variant_t(strSheetName));

sheetAttachDispatch(lpDisp);

}

catch()

{

/创建一个新的Sheet/

lpDisp = sheetsAdd(vtMissing, vtMissing, _variant_t((long)1), vtMissing);

sheetAttachDispatch(lpDisp);

sheetSetName(strSheetName);

}

/向Sheet中写入多个单元格,规模为430 /

lpDisp = sheetGetRange(_variant_t("C6"),_variant_t("F35"));

rangeAttachDispatch(lpDisp);

VARTYPE vt = VT_R4; /数组元素的类型,float/

SAFEARRAYBOUND sabWrite[2]; /用于定义数组的维数和下标的起始值/

sabWrite[0]cElements = 30;

sabWrite[0]lLbound = 0;

sabWrite[1]cElements = 4;

sabWrite[1]lLbound = 0;

COleSafeArray olesaWrite;

olesaWriteCreate(vt, sizeof(sabWrite)/sizeof(SAFEARRAYBOUND), sabWrite);

/通过指向数组的指针来对二维数组的元素进行间接赋值/

float (pArray)[2]= NULL;

olesaWriteAccessData((void )&pArray);

memset(pArray, 0, sabWrite[0]cElements sabWrite[1]cElements sizeof(float));

/释放指向数组的指针/

olesaWriteUnaccessData();

pArray = NULL;

/对二维数组的元素进行逐个赋值/

long index[2]= {0, 0};

long lFirstLBound = 0;

long lFirstUBound = 0;

long lSecondLBound = 0;

long lSecondUBound = 0;

olesaWriteGetLBound(1, &lFirstLBound);

olesaWriteGetUBound(1, &lFirstUBound);

olesaWriteGetLBound(2, &lSecondLBound);

olesaWriteGetUBound(2, &lSecondUBound);

long i = 0;

for (i = lFirstLBound;i <= lFirstUBound; i++)

{

index[0] = i;

for (long j =lSecondLBound; j <= lSecondUBound; j++)

{

index[1] = j;

float lElement = (float)(i sabWrite[1]cElements + j);

olesaWritePutElement(index, &lElement);

}

}

/把ColesaWritefeArray变量转换为VARIANT,并写入到Excel表格中/

VARIANT varWrite = (VARIANT)olesaWrite;

rangeSetValue2(varWrite);

rangeSetNumberFormatLocal(COleVariant("000"));

/根据文件的后缀名选择保存文件的格式/

//CString strSaveAsName = _T("C:\\ewxls");

//CString strSuffix = strSaveAsNameMid(strSaveAsNameReverseFind(_T('')));

//XlFileFormat NewFileFormat = xlOpenXMLWorkbook;

////Excel::XlFileFormat NewFileFormat = xlWorkbookNormal;

//if (0 ==strSuffixCompareNoCase(_T("xls")))

//{

// NewFileFormat= xlExcel8;

//}

//bookSaveAs(_variant_t(strSaveAsName), _variant_t((long)NewFileFormat),vtMissing, vtMissing, vtMissing,

// vtMissing, 0, vtMissing, vtMissing, vtMissing,

// vtMissing, vtMissing);

bookSave();

/释放资源/

sheetReleaseDispatch();

sheetsReleaseDispatch();

bookReleaseDispatch();

booksReleaseDispatch();

ExcelAppQuit();

ExcelAppReleaseDispatch();

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/12156285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存