输入excel文件到列表&&输出列表到excel文件
来源:互联网 发布:巨人网络退市市值 编辑:程序博客网 时间:2024/04/28 15:33
输入excel文件到列表&&输出列表到excel文件
1、向项目工程中添加基本的7个类,分别是:CApplication,CMyFont,CRange,CWorkBook,CWorkBooks,CWorkSheet,CWorkSheets,选择MFC Class From TypeLib,在Add Class From 中选中File,在Location中输入或者选择EXCEL.EXE(officer2007为EXCEL.EXE,officer2003为EXCEL9.OLB)的路径。然后在Interface框(即1号框)中选择操作Excel的基本接口,分别是:_Application,_WorkBook,_WorkSheet, Range,Font,WorkBooks,WorkSheets。点击Generated classes(即2号框)中CFont0类,在classes(即3号框)和File(即4号框)中修改其类名为CMyFont,头文件名为CMyFont.h(类名和头文件名,也可以是其他名字,由自己确定)。点击Finish完成添加。
把CApplication.h,CMyFont.h,CRange.h,CWorkBook.h,CWorkBooks.h,CWorkSheet.h,CWorkSheets.h中的“#import "C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE" no_namespace”注释掉,然后添加头文件: #include <afxdisp.h> 到上面7个文件中去。
例子:
CApplication app;
CWorkbooks books;
CWorkbook book;
CWorksheets sheets;
CWorksheet sheet;
CRange range;
CRange cols;
CString strSheetName;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
LPDISPATCH lpDisp;
CString New_FilePath = _T("D:\\DF数据.xlsx");
if (::CoInitialize( NULL ) == E_INVALIDARG)
{
AfxMessageBox(_T("excel工程初始化Com失败,请检查excel版本是否为2010或者以上!"));
return false;
}
if (!app.CreateDispatch(_T("Excel.Application")))
{
AfxMessageBox(_T("无法创建Excel应用,请检查excel版本是否为2010或者以上!"));
return false;
}
books=app.get_Workbooks();
book=books.Add(covOptional);
sheets=book.get_Sheets();
strSheetName.Format(_T("%04X-%02d-%02d-%02d"),vecDFData[0].dwNuid,vecDFData[0].btUnitID,vecDFData[0].btPhyChlID,vecDFData[0].dwTestID);
/*创建一个新的Sheet*/
{//first sheet
lpDisp = sheets.Add(vtMissing,vtMissing, _variant_t((long)1), vtMissing);
sheet.AttachDispatch(lpDisp);
sheet.put_Name(strSheetName);
}
sheet=sheets.get_Item(COleVariant((short)1));//取一张表
//写入表头//
for (int Col = 1; Col < 15; Col++)
{
CString str = GetEnglishCharacter(Col) + _T("1");
range=sheet.get_Range(COleVariant(str),COleVariant(str));
switch(Col)
{
case 1:
str.Format(_T("数据序号"));
break;
...
}
range.put_Value2(COleVariant(str));
}
int RowNum = 2;//对应excel表行号
for(int i = 0; i < vecDFData.size(); i++)
{
for (int Col = 1; Col < 15; Col++)
{
CString NumStr;//用来转换RowNum
NumStr.Format(_T("%d"),RowNum);//把RowNum转成字符串
CString str = GetEnglishCharacter(Col) + NumStr;
time_t tmTable;
errno_t err;
tm LocalTime;
range=sheet.get_Range(COleVariant(str),COleVariant(str));
switch(Col)
{//把值写到excel表中
case 1:
str.Format(_T("%d"),vecDFData[i].dwTestDataSN);
break;
}
range.put_Value2(COleVariant(str));
}
++RowNum;
}
DeleteFile(New_FilePath);//先删除excel文件,避免下面SaveAs保存时弹出是否替换的对话框
sheet.SaveAs(New_FilePath,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing);
app.put_UserControl(TRUE);
app.Quit();
range.ReleaseDispatch();
sheet.ReleaseDispatch();
sheets.ReleaseDispatch();
book.ReleaseDispatch();
books.ReleaseDispatch();
app.ReleaseDispatch();
- 输入excel文件到列表&&输出列表到excel文件
- 文件列表输出到文件
- 将页面的列表数据导出到excel文件中
- SharePoint2013导入Excel到列表
- 将DataGrid输出到Excel文件
- 把DataGrid数据输出到Excel文件
- 将DataGrid输出到Excel文件
- MFC ODBC输出到Excel文件
- 将DataGrid输出到Excel文件
- C#输出DataTable数据到Excel文件
- vba读取文件 输出到excel
- MFC将ListCtrl列表导出到Excel-采用文件流写Excel兼容Html格式(不需要Excel环境)
- EXCEL:将多个EXCEL文件输出到同一SQL SERVER数据库
- 导出文件到excel
- Python--使用xlwt将列表类型的数据写到Excel xls文件中--TxtToExcel
- 导出List列表中的数据到Excel文件,并提供下载
- 数据输出到WORD文件或EXCEL文件的路
- 文件保存到EXCEL文件
- fabric 学习笔记
- Eclipse或MyEclipse—在Eclipse或MyEclipse中的操作(1)
- 伸展树
- fusionCharts的详细解析与应用
- 求最大公约数
- 输入excel文件到列表&&输出列表到excel文件
- (转)STC,PCR,DTS,PTS(2011-11-22 11:02:42)转载▼
- 第十一周T(三)——求两个数最大公约数
- 求最大公约数
- Linux下缓冲区溢出攻击的原理及对策
- 星号图
- 第十一周项目3-3-判断一个数是否素数
- 王垠:如何掌握程序语言
- 第十一周-星号2