...
This commit is contained in:
commit
571779d33a
@ -11,6 +11,7 @@ using namespace std;;
|
|||||||
using namespace ocilib;
|
using namespace ocilib;
|
||||||
using namespace libxl;
|
using namespace libxl;
|
||||||
|
|
||||||
|
|
||||||
void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
|
void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
|
||||||
unsigned int sheetIndex,
|
unsigned int sheetIndex,
|
||||||
bool hasTitleRow,
|
bool hasTitleRow,
|
||||||
@ -19,17 +20,17 @@ void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
|
|||||||
const std::string & password )
|
const std::string & password )
|
||||||
{
|
{
|
||||||
//防御性验证
|
//防御性验证
|
||||||
if ( filePath.empty() == true ||
|
if (filePath.empty() == true ||
|
||||||
tnsName.empty() == true ||
|
tnsName.empty() == true ||
|
||||||
userName.empty() == true ||
|
userName.empty() == true ||
|
||||||
password.empty() == true )
|
password.empty() == true)
|
||||||
{
|
{
|
||||||
throw runtime_error( "参数错误!" );
|
throw runtime_error("参数错误!");
|
||||||
}
|
}
|
||||||
|
|
||||||
//libxl对象
|
//libxl对象
|
||||||
Book * pBook = xlCreateBookW();
|
Book* pBook = xlCreateBookW();
|
||||||
Sheet * pSheet = nullptr;
|
Sheet* pSheet = nullptr;
|
||||||
map<int, wstring> titleMap; //存放标题行
|
map<int, wstring> titleMap; //存放标题行
|
||||||
unsigned int firstColumnIndex; //第一列
|
unsigned int firstColumnIndex; //第一列
|
||||||
unsigned int lastColumnIndex; //最后一列
|
unsigned int lastColumnIndex; //最后一列
|
||||||
@ -37,24 +38,24 @@ void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
|
|||||||
unsigned int lastRowIndex;
|
unsigned int lastRowIndex;
|
||||||
|
|
||||||
//ocilib对象
|
//ocilib对象
|
||||||
Connection * pConnection = nullptr;
|
Connection* pConnection = nullptr;
|
||||||
Statement * pStatement = nullptr;
|
Statement* pStatement = nullptr;
|
||||||
|
|
||||||
if ( pBook == nullptr )
|
if (pBook == nullptr)
|
||||||
{
|
{
|
||||||
throw runtime_error( "libxl初始化失败!" );
|
throw runtime_error("libxl初始化失败!");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( pBook->load( filePath.c_str() ) != true )
|
if (pBook->load(filePath.c_str()) != true)
|
||||||
{
|
{
|
||||||
throw runtime_error( "打开excel文件失败!" );
|
throw runtime_error("打开excel文件失败!");
|
||||||
}
|
}
|
||||||
|
|
||||||
pSheet = pBook->getSheet( sheetIndex );
|
pSheet = pBook->getSheet(sheetIndex);
|
||||||
|
|
||||||
if ( pSheet == nullptr )
|
if (pSheet == nullptr)
|
||||||
{
|
{
|
||||||
throw runtime_error( "读取sheet失败失败!" );
|
throw runtime_error("读取sheet失败失败!");
|
||||||
}
|
}
|
||||||
|
|
||||||
firstColumnIndex = pSheet->firstCol();
|
firstColumnIndex = pSheet->firstCol();
|
||||||
@ -62,9 +63,11 @@ void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
|
|||||||
firstRowIndex = pSheet->firstRow();
|
firstRowIndex = pSheet->firstRow();
|
||||||
lastRowIndex = pSheet->lastRow();
|
lastRowIndex = pSheet->lastRow();
|
||||||
|
|
||||||
unsigned int index = firstColumnIndex;
|
unsigned int colIndex = firstColumnIndex;
|
||||||
|
unsigned int rowIndex = firstRowIndex;
|
||||||
|
|
||||||
//保存标题
|
//保存标题
|
||||||
|
<<<<<<< HEAD
|
||||||
if (hasTitleRow)
|
if (hasTitleRow)
|
||||||
{
|
{
|
||||||
while (index <= lastColumnIndex)
|
while (index <= lastColumnIndex)
|
||||||
@ -78,4 +81,31 @@ void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
|
|||||||
}
|
}
|
||||||
|
|
||||||
//逐行保存数据
|
//逐行保存数据
|
||||||
|
=======
|
||||||
|
while (colIndex <= lastColumnIndex)
|
||||||
|
{
|
||||||
|
wstring&& title = ReadCellStringFromXlsx(pBook, sheetIndex, titleRowIndex, colIndex, false);
|
||||||
|
|
||||||
|
titleMap.insert(pair<int, wstring>(colIndex, title));
|
||||||
|
|
||||||
|
++colIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
//逐行保存数据
|
||||||
|
for (rowIndex = firstRowIndex; rowIndex >= lastRowIndex; rowIndex++)
|
||||||
|
{
|
||||||
|
//如果是标题行,就跳过
|
||||||
|
if (rowIndex == titleRowIndex)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//逐列绑定sql语句
|
||||||
|
for (colIndex = firstColumnIndex; colIndex <= lastColumnIndex; colIndex++)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
>>>>>>> 1c61f5c9c59d272bf37edf8d9217c4389b802ceb
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user