做了一点点重构
This commit is contained in:
parent
173aa6655f
commit
dc162b3180
@ -1,4 +1,4 @@
|
||||
#include <libxl.h>
|
||||
#include <libxl.h>
|
||||
#include <stdexcept>
|
||||
#include "LoadFromExcel.h"
|
||||
#include "../../excel/excel.h"
|
||||
@ -1072,7 +1072,7 @@ void LoadNewRepairMonitorReportFromXlsx( const std::wstring &
|
||||
* \param pszCaptionFormat
|
||||
* \return
|
||||
************************************************/
|
||||
bool checkExcelFileFormat( Book * pBook, int sheetIndex, int captionRowIndex, const wchar_t * pszCaptionFormat[], int captionCount )
|
||||
/*bool checkExcelFileFormat( Book * pBook, int sheetIndex, int captionRowIndex, const wchar_t * pszCaptionFormat[], int captionCount )
|
||||
{
|
||||
if ( pBook == nullptr )
|
||||
{
|
||||
@ -1103,4 +1103,4 @@ bool checkExcelFileFormat( Book * pBook, int sheetIndex, int captionRowIndex, co
|
||||
}
|
||||
|
||||
return isEqual;
|
||||
}
|
||||
}*/
|
||||
|
@ -163,3 +163,41 @@ libxl::Sheet * getXlsxSheetByName( libxl::IBookT<wchar_t> * pBook, const std::ws
|
||||
|
||||
return pSheet;
|
||||
}
|
||||
|
||||
|
||||
bool checkExcelFileFormat(Book* pBook,
|
||||
int sheetIndex,
|
||||
int captionRowIndex,
|
||||
const wchar_t* pszCaptionFormat[],
|
||||
int captionCount)
|
||||
{
|
||||
if (pBook == nullptr)
|
||||
{
|
||||
throw logic_error("Excel文件指针为空!");
|
||||
}
|
||||
|
||||
if (sheetIndex < 0 || captionRowIndex < 0)
|
||||
{
|
||||
throw logic_error("标题行参数错误!");
|
||||
}
|
||||
|
||||
Sheet* pSheet = pBook->getSheet(sheetIndex);
|
||||
int captionIndex = 0;
|
||||
bool isEqual = true;
|
||||
|
||||
while (captionIndex < captionCount)
|
||||
{
|
||||
const wchar_t* pwszCaption = pSheet->readStr(captionRowIndex, captionIndex);
|
||||
|
||||
if (wcscmp(pwszCaption, pszCaptionFormat[captionIndex]) != 0)
|
||||
{
|
||||
isEqual = false;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
captionIndex++;
|
||||
}
|
||||
|
||||
return isEqual;
|
||||
}
|
@ -1,6 +1,4 @@
|
||||
#pragma once
|
||||
#ifndef EXCEL_H_
|
||||
#define EXCEL_H_
|
||||
|
||||
#include <libxl.h>
|
||||
|
||||
@ -33,5 +31,18 @@ std::wstring ReadCellStringFromXlsx( libxl::IBookT<wchar_t> * pBook,
|
||||
************************************************/
|
||||
libxl::Sheet * getXlsxSheetByName( libxl::IBookT<wchar_t> * pBook, const std::wstring & sheetName );
|
||||
|
||||
/************************************************
|
||||
* \brief 核对excel表格的内容,根据pszCaptionFormat参数提供的表头数组来核对
|
||||
* \param pBook excel文件指针
|
||||
* \param sheetIndex 要核对的sheet索引
|
||||
* \param captionRowIndex 标题行索引
|
||||
* \param pszCaptionFormat 包含标题内容的字符串数组
|
||||
* \param captionCount 标题数量
|
||||
* \return
|
||||
************************************************/
|
||||
bool checkExcelFileFormat( libxl::Book * pBook,
|
||||
int sheetIndex,
|
||||
int captionRowIndex,
|
||||
const wchar_t * pszCaptionFormat[],
|
||||
int captionCount );
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user