...
This commit is contained in:
		@@ -29,7 +29,8 @@ std::wstring ReadCellStringFromXlsx( libxl::IBookT<wchar_t> * pBook,
 | 
			
		||||
* \param sheetName 
 | 
			
		||||
* \return 
 | 
			
		||||
************************************************/
 | 
			
		||||
libxl::Sheet * getXlsxSheetByName( libxl::IBookT<wchar_t> * pBook, const std::wstring & sheetName );
 | 
			
		||||
libxl::Sheet * getXlsxSheetByName( libxl::IBookT<wchar_t> * pBook,
 | 
			
		||||
                                   const std::wstring &     sheetName );
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 核对excel表格的内容,根据pszCaptionFormat参数提供的表头数组来核对
 | 
			
		||||
@@ -45,4 +46,3 @@ bool checkExcelFileFormat( libxl::Book *   pBook,
 | 
			
		||||
                           int             captionRowIndex,
 | 
			
		||||
                           const wchar_t * pszCaptionFormat[],
 | 
			
		||||
                           int             captionCount );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								code/cpp/car_dealer_util/source/util/excel/excel_util.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								code/cpp/car_dealer_util/source/util/excel/excel_util.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
#include <cwchar>
 | 
			
		||||
#include "excel_util.h"
 | 
			
		||||
 | 
			
		||||
using namespace libxl;
 | 
			
		||||
using namespace std;
 | 
			
		||||
 | 
			
		||||
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;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										26
									
								
								code/cpp/car_dealer_util/source/util/excel/excel_util.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								code/cpp/car_dealer_util/source/util/excel/excel_util.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <libxl.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \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 );
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 通过名称获取sheet
 | 
			
		||||
* \param sheetName
 | 
			
		||||
* \return
 | 
			
		||||
************************************************/
 | 
			
		||||
libxl::Sheet* getXlsxSheetByName(libxl::IBookT<wchar_t>* pBook, const std::wstring& sheetName);
 | 
			
		||||
		Reference in New Issue
	
	Block a user