最后一个表!
This commit is contained in:
		@@ -0,0 +1,80 @@
 | 
			
		||||
#include <map>
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
#include <exception>
 | 
			
		||||
#include <ocilib.hpp>
 | 
			
		||||
#include <libxl.h>
 | 
			
		||||
#include "FromExcelToOracle.h"
 | 
			
		||||
 | 
			
		||||
#include "../../excel/excel.h"
 | 
			
		||||
 | 
			
		||||
using namespace std;;
 | 
			
		||||
using namespace ocilib;
 | 
			
		||||
using namespace libxl;
 | 
			
		||||
 | 
			
		||||
void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
 | 
			
		||||
                                        unsigned int         sheetIndex,
 | 
			
		||||
                                        unsigned int         titleRowIndex,
 | 
			
		||||
                                        unsigned int         firstRowIndex,
 | 
			
		||||
                                        const std::string &  tnsName,
 | 
			
		||||
                                        const std::string &  userName,
 | 
			
		||||
                                        const std::string &  password )
 | 
			
		||||
{
 | 
			
		||||
	//防御性验证
 | 
			
		||||
	if ( filePath.empty() == true ||
 | 
			
		||||
	     tnsName.empty() == true ||
 | 
			
		||||
	     userName.empty() == true ||
 | 
			
		||||
	     password.empty() == true )
 | 
			
		||||
	{
 | 
			
		||||
		throw runtime_error( "参数错误!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//libxl对象
 | 
			
		||||
	Book *            pBook  = xlCreateBookW();
 | 
			
		||||
	Sheet *           pSheet = nullptr;
 | 
			
		||||
	map<int, wstring> titleMap;         //存放标题行
 | 
			
		||||
	unsigned int      firstColumnIndex; //第一列
 | 
			
		||||
	unsigned int      lastColumnIndex;  //最后一列
 | 
			
		||||
	unsigned int      firstRowIndex;
 | 
			
		||||
	unsigned int      lastRowIndex;
 | 
			
		||||
 | 
			
		||||
	//ocilib对象
 | 
			
		||||
	Connection * pConnection = nullptr;
 | 
			
		||||
	Statement *  pStatement  = nullptr;
 | 
			
		||||
 | 
			
		||||
	if ( pBook == nullptr )
 | 
			
		||||
	{
 | 
			
		||||
		throw runtime_error( "libxl初始化失败!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ( pBook->load( filePath.c_str() ) != true )
 | 
			
		||||
	{
 | 
			
		||||
		throw runtime_error( "打开excel文件失败!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pSheet = pBook->getSheet( sheetIndex );
 | 
			
		||||
 | 
			
		||||
	if ( pSheet == nullptr )
 | 
			
		||||
	{
 | 
			
		||||
		throw runtime_error( "读取sheet失败失败!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	firstColumnIndex = pSheet->firstCol();
 | 
			
		||||
	lastColumnIndex  = pSheet->lastCol();
 | 
			
		||||
	firstRowIndex    = pSheet->firstRow();
 | 
			
		||||
	lastRowIndex     = pSheet->lastRow();
 | 
			
		||||
 | 
			
		||||
	unsigned int index = firstColumnIndex;
 | 
			
		||||
 | 
			
		||||
	//保存标题
 | 
			
		||||
	while ( index <= lastColumnIndex )
 | 
			
		||||
	{
 | 
			
		||||
		wstring && title = ReadCellStringFromXlsx( pBook, sheetIndex, titleRowIndex, index, false );
 | 
			
		||||
 | 
			
		||||
		titleMap.insert( pair<int, wstring>( index, title ) );
 | 
			
		||||
 | 
			
		||||
		++index;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//逐行保存数据
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,11 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <iostream>
 | 
			
		||||
 | 
			
		||||
void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
 | 
			
		||||
                                        unsigned int         sheetIndex,
 | 
			
		||||
                                        unsigned int         titleRowIndex,
 | 
			
		||||
                                        unsigned int         firstRowIndex,
 | 
			
		||||
                                        const std::string &  tnsName,
 | 
			
		||||
                                        const std::string &  userName,
 | 
			
		||||
                                        const std::string &  password );
 | 
			
		||||
		Reference in New Issue
	
	Block a user