最后一个表!

This commit is contained in:
2020-03-18 18:24:18 +08:00
parent d6faa08e7a
commit 13309fcf74
6 changed files with 102 additions and 0 deletions

View File

@@ -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;
}
//逐行保存数据
}

View File

@@ -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 );