写入.csv文件

#include "stdafx.h"
#include "WriteCsv.h"
    CString m_strData;//写入记录的一条数据
    CString strTempData;//临时的记录数据
    double dData1 = 1.1, dData2 = 2.2, dData3 = 3.3, dData4 = 4.4;
    strTempData.Format("%3.3f,%3.3f,%3.3f", dData1, dData2, dData3);
    m_strData += strTempData + ",";//","代表在Excel中分隔开到另一个单元格
    strTempData.Format("%3.3f", dData4);
    m_strData += strTempData + ",\n";//表示字符串可+,即可灵活拼接想要的数据;"\n"代表在表中换行
    //打开连续记录数据的文件 
    CStdioFile fileDataFile;
    int nRes = OpenWeightFile(fileDataFile);
    if (0 != nRes)
    {
        WBMessageBox("打开记录文件失败");
        m_strData.Empty();
        return TRUE;
    }
    fileDataFile.SeekToEnd();//定位到文件末尾
    
    WriteWeightData(fileDataFile, m_strData);

    m_strData.Empty();

    CloseDataFile(fileDataFile);    
#define WRITE_CSV_TEST_FILE ".\\cfg\\Data.csv"    //数据连续记录路径
//数据记录
int OpenFile(CStdioFile &fileStatistics);
int CloseDataFile(CStdioFile &fileStatistics);
int WriteData(CStdioFile &fileStatistics, CString &strData);
BOOL CheckFileIsOpen();

#include "stdafx.h"
#include "WriteCsv.h"
//数据记录
static BOOL s_bDataFileIsOpen = FALSE;

int OpenFile(CStdioFile &fileStatistics)
{
    if (s_bDataFileIsOpen )
    {
        return 0;
    }

    CString strFilePath = WRITE_CSV_TEST_FILE;
    fileStatistics.Open(_T(strFilePath), CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite);
    s_bDataFileIsOpen = TRUE;

    return 0;
}

int CloseDataFile(CStdioFile &fileStatistics)
{
    if (s_bDataFileIsOpen )
    {
        fileStatistics.Close();
        s_bDataFileIsOpen = FALSE;
    }

    return 0;
}

int WriteData(CStdioFile &fileStatistics, CString &strData)
{
    if (s_bDataFileIsOpen )
    {
        fileStatistics.WriteString(strData);
        return 0;
    }
    else
    {
        return 1;
    }
}

BOOL CheckFileIsOpen()
{
    return s_bDataFileIsOpen ;
}

将数据dData1、dData2、dData3、dData4写入.csv文件中。.csv文件打开为Excel形式。程序执行的结果为在excel中第一行的对应单元格中记录dData数据,编写时的","即为分隔符,若果要换行则+"\n'即可。

posted @ 2016-09-23 17:38  蚂蚁跳高楼  阅读(753)  评论(0编辑  收藏  举报