-
大小: 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
- 上一篇:proteus仿真 电机驱动电路
- 下一篇:arduino多种器件库
相关资源
- jni.h头文件
- strsafe.h.zip
- StdAfx.h
- MSTCPIP.H
- hmm好多算法.
- emmintrin.h和xmmintrin.h头文件
- 多线程头文件omp.h
- AVR_PQ1A.H
- 参透winuser.h的内容附带部分解析
- dinput.h头文件
- opengl类库大全glaux.lib;glu.lib;glu32.lib;
- glad.h 源文件
- msinttypes-r26214430
- modelsim仿真带ROM的程序需要convert_hex
- win 8+ winternl.h
- openGL超级全的库,有GL.h、GLAUX.h/lib、
- glaux.h/glaux.lib
- System.Net.Http.dll
- compiler gcc5.h
- glaux库,包括头文件lib以及dll
- ws.hbang.newterm2_2.0_iphoneos-arm[1249].deb
- 中国畜牧软件网惠顺猪场养殖管理信
- glm.cpp、glm.h用于opengl读取obj文件
- 缺少compiler-gcc5.h文件
- csapp.h csapp.c文件
- mpr.h
- stm32f10x相关库文件 (包含: stm32f10x
- RFID.h RC522
- 层次遍历多元树在文件tree.cpp中3个空
- text.hex
评论
共有 条评论