• 大小: 7KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: 其他
  • 标签: CSpreadSheet  .cpp  .h  

资源简介

CSpreadSheet类可对文件进行读写、修改等操作,并能逐位操作单元格,使用十分方便 注意事项: 使用时记得在StdAfx.h文件中加入 #include #include 然后手动添加 CSpreadSheet.h 和CSpreadSheet.cpp进该项目工作区(插入、复制/粘贴 或者 直接包含即可)

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “CSpreadSheet.h“

// Open spreadsheet for reading and writing
CSpreadSheet::CSpreadSheet(CString File CString SheetOrSeparator bool Backup) :
m_Database(NULL) m_rSheet(NULL) m_sFile(File)
m_dTotalRows(0) m_dTotalColumns(0) m_dCurrentRow(1)
m_bAppend(false) m_bBackup(Backup) m_bTransaction(false)
{
// Detect whether file is an Excel spreadsheet or a text delimited file
m_stempString = m_sFile.Right(4);
m_stempString.MakeLower();
if (m_stempString == “.xls“) // File is an Excel spreadsheet
{
m_bExcel = true;
m_sSheetName = SheetOrSeparator;
m_sSeparator = “;.?“;
}
else // File is a text delimited file
{
m_bExcel = false;
m_sSeparator = SheetOrSeparator;
}

if (m_bExcel) // If file is an Excel spreadsheet
{
m_Database = new CDatabase;
GetExcelDriver();
m_sDsn.Format(“DRIVER={%s};DSN=‘‘;FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\“%s\“;DBQ=%s“ m_sExcelDriver m_sFile m_sFile);

if (Open())
{
if (m_bBackup)
{
if ((m_bBackup) && (m_bAppend))
{
CString tempSheetName = m_sSheetName;
m_sSheetName = “CSpreadSheetBackup“;
m_bAppend = false;
if (!Commit())
{
m_bBackup = false;
}
m_bAppend = true;
m_sSheetName = tempSheetName;
m_dCurrentRow = 1;
}
}
}
}
else // if file is a text delimited file
{
if (Open())
{
if ((m_bBackup) && (m_bAppend))
{
m_stempString = m_sFile;
m_stempSql.Format(“%s.bak“ m_sFile);
m_sFile = m_stempSql;
if (!Commit())
{
m_bBackup = false;
}
m_sFile = m_stempString;
}
}
}
}

// Perform some cleanup functions
CSpreadSheet::~CSpreadSheet()
{
if (m_Database != NULL)
{
m_Database->Close();
delete m_Database;
}
}

// Add header row to spreadsheet
bool CSpreadSheet::AddHeaders(CStringArray &FieldNames bool replace)
{
if (m_bAppend) // Append to old Sheet
{
if (replace) // Replacing header row rather than adding new columns
{
if (!AddRow(FieldNames 1 true))
{
return false;
}
else
{
return true;
}
}

if (ReadRow(m_atempArray 1)) // Add new columns
{
if (m_bExcel)
{
// Check for duplicate header row field
for (int i = 0; i < FieldNames.GetSize(); i++)
{
for (int j = 0; j < m_atempArray.GetSize(); j++)
{
if (FieldNames.GetAt(i) == m_atempArray.GetAt(j))
{
m_sLastError.Format(“Duplicate header row field:%s\n“ FieldNames.GetAt(i));
return false;
}
}
}
}

m_atempArray.Append(FieldNames);
if (!AddRow(m_atempArray 1 true))
{
m_sLastError = “Problems with adding headers\n“;
return false;
}

// Update largest number of columns if necessary
if (m_atempArray.GetSize() > m_dTotalColumns)
{
m_dTotalColumns = m_atempArray.GetSize();
}
return true;
}
return false;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5251  2010-03-24 17:57  CSpreadSheet.h

     文件      28981  2010-03-24 17:57  CSpreadSheet.cpp

----------- ---------  ---------- -----  ----

                34232                    2


评论

共有 条评论