-
大小: 7KB文件类型: .rar金币: 2下载: 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多种器件库
相关资源
- hidusage.h hidpi.h 等USB开发用头文件
- IpHlpApi.h&IpHlpApi.lib
- 51多机通信(内附Proteus及.hex文件)
- OpenGL导入贴图的Texture类
- halcon简单实现人脸识别.hdev
- halcon实现创建模板中心可以任意设置
- 基于HALCON识别指示灯亮灭和OCR识别.
- halcon跟随测量.hdev
- 视觉分拣.hdev
- H310.B360.H370.Z390.USB WIN7 64位第三方驱动
- opencv3.0交叉编译用parallel.cpp
- 矩阵分析-经典教材-中文版-Roger.A.Ho
- reg52.h详解
- 神经网络原理 Simon.Haykin 编——神经网
- linux_syscall_support.h_2016/12/20
- DES 纯c实现(des.c和des.h) 含pkcs1填充
- OpcRcw.Ae.dll OpcRcw.Batch.dll OpcRcw.Comn.dll
-
00.Hili
nk SDK Demo开发指导v1.3 - OpenGL 火箭
- .h264文件裸流制作与播放
- u8g2.zipPictureAndWord
- Delphi.High.Performance.Applications.Concurren
- glew32.lib;glew.hglew.dll
- glui for opengl(glui.h glui32.lib)
- Font_libs.h ASCII CHS VGA HZK
- Font_Libs.h
- model.h5 model.json
- Programming.in.Haskell.2nd.Edition.pdf
- Geometric Functional Analysis and Its Applicat
- [算法导论].[Introduction.to.Algorithms].Th
评论
共有 条评论