【mfc】excel读写——libxl.lib库

工程的配置

1、把include_cpp复制到工程文件夹下,设置包含目录

2、把libxl.lib复制到工程文件夹下,附加依赖项:libxl.lib

3、把libxl.dll复制到Debug下

 

Dlg.cpp下补充头文件与命名空间

#include "libxl.h"
#include <iostream>
using namespace libxl;

 

Dlg.cpp下主要代码:

const TCHAR* ReadDataToWChar(Sheet* sheet, int row,int col)
{
    CellType type = sheet->cellType(row,col);
    TCHAR buff[1024];
    switch (type)
    {
    case 1://Num
        {
            swprintf_s(buff,1024,_T("%.2lf"),sheet->readNum(row,col));
            return buff;
        }
    case 2://Str
        {
            return sheet->readStr(row,col);
        }
    default:
        {
            return _T("读取错误!");
        }
    }
}

void CExcelTestDlg::OnBnClickedButton1()
{
    //初始化
    Book* book = xlCreateBook();	
    //if(!book) return -1;
    //book->load("00.xls");	//直接读的方式

    //创建两个表,一个为“测试写”,一个为“测试读”
    Sheet* sheet = book->addSheet(_T("测试写"));
    Sheet* sheet1 = book->addSheet(_T("测试读"));
    //sheet = book->getSheet(0);

    //创建出错返回
    //if(!sheet || !sheet1) return -2;

    ///设置格式//
    //设置字体
    //libxl::Font* font = book->addFont();
    //font->setName(_T("0"));
    //font->setSize(20);
    //font->setColor(COLOR_DARKBLUE);
    //font->setItalic();

    //设置样式
    Format* StrFormat = book->addFormat();
    //StrFormat->setAlignH(ALIGNH_LEFT);
    //StrFormat->setBorder(BORDERSTYLE_MEDIUMDASHDOTDOT);
    //StrFormat->setBorderColor(COLOR_RED);
    //StrFormat->setFont(font);

    Format* dateFormat = book->addFormat();
    //dateFormat->setNumFormat(NUMFORMAT_DATE);

    Format* NumFormat = book->addFormat();
    //NumFormat->setNumFormat(NUMFORMAT_NUMBER);

    //Format* NumFormat1 = book->addFormat();
    //NumFormat1->setNumFormat(NUMFORMAT_NUMBER_D2);
    


    /你提出的要求的测试代码/
    //读EDIT写入EXCEL
    CString str;
    GetDlgItemText(IDC_WRITE, str);//得到字符串
    sheet->writeStr(0, 0, str, StrFormat);//0行0列
    //读EXCEL写入EDIT
    CString str2;
    str2 = ReadDataToWChar(sheet,0,0);//0行0列
    SetDlgItemText(IDC_READ, str2);
    /你提出的要求的测试代码/


    //以下为自由发挥部分
    ///写数据///	
    sheet->writeStr(2, 0, _T("Hello, World !"),StrFormat);
    sheet->writeNum(4, 0, 1000,NumFormat);
    //sheet->writeNum(5, 0, 20.98,NumFormat1);
    sheet->writeFormula(6, 0, _T("SUM(A5:A6)"));
    sheet->writeNum(8, 0, book->datePack(2012, 05, 17), dateFormat);

    

    //循环写
    for (int i = 0;i < 200;i++)
    {
        sheet->writeStr(i, 2, _T("Hello, World !"),StrFormat);
        sheet->writeNum(i, 3, i);
    }
    


    ///读数据///	
    for (int i = 0;i < 200;i++)
    {
        sheet1->writeStr(i, 0,ReadDataToWChar(sheet,i,2));
        sheet1->writeStr(i, 3,ReadDataToWChar(sheet,i,3));

        sheet1->setCellFormat(i,3,StrFormat);
    }
    


    ///保存///	
    if(book->save(_T("00.xls"))) 
    {
       // ::ShellExecute(NULL, _T("open"), _T("00.xls"), NULL, NULL, SW_SHOW);   
    }
    else
    {
        std::cout << book->errorMessage() << std::endl;
    }
    

    book->release();
}

 

具体工程见下载链接(VS2012):http://download.csdn.net/detail/qq_15947787/9844045

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值