diff --git a/代码/cpp/car_dealer_util/source/Data/DataManipulation/FromExcelToOracle/FromExcelToOracle.cpp b/代码/cpp/car_dealer_util/source/Data/DataManipulation/FromExcelToOracle/FromExcelToOracle.cpp index dfbe1e0..83d3153 100644 --- a/代码/cpp/car_dealer_util/source/Data/DataManipulation/FromExcelToOracle/FromExcelToOracle.cpp +++ b/代码/cpp/car_dealer_util/source/Data/DataManipulation/FromExcelToOracle/FromExcelToOracle.cpp @@ -11,6 +11,7 @@ using namespace std;; using namespace ocilib; using namespace libxl; + void RepairMonitoringFromExcelToOracle( const std::wstring & filePath, unsigned int sheetIndex, bool hasTitleRow, @@ -19,17 +20,17 @@ void RepairMonitoringFromExcelToOracle( const std::wstring & filePath, const std::string & password ) { //防御性验证 - if ( filePath.empty() == true || - tnsName.empty() == true || - userName.empty() == true || - password.empty() == true ) + if (filePath.empty() == true || + tnsName.empty() == true || + userName.empty() == true || + password.empty() == true) { - throw runtime_error( "参数错误!" ); + throw runtime_error("参数错误!"); } //libxl对象 - Book * pBook = xlCreateBookW(); - Sheet * pSheet = nullptr; + Book* pBook = xlCreateBookW(); + Sheet* pSheet = nullptr; map titleMap; //存放标题行 unsigned int firstColumnIndex; //第一列 unsigned int lastColumnIndex; //最后一列 @@ -37,34 +38,36 @@ void RepairMonitoringFromExcelToOracle( const std::wstring & filePath, unsigned int lastRowIndex; //ocilib对象 - Connection * pConnection = nullptr; - Statement * pStatement = nullptr; + Connection* pConnection = 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(); - lastColumnIndex = pSheet->lastCol(); - firstRowIndex = pSheet->firstRow(); - lastRowIndex = pSheet->lastRow(); + lastColumnIndex = pSheet->lastCol(); + firstRowIndex = pSheet->firstRow(); + lastRowIndex = pSheet->lastRow(); - unsigned int index = firstColumnIndex; + unsigned int colIndex = firstColumnIndex; + unsigned int rowIndex = firstRowIndex; //保存标题 +<<<<<<< HEAD if (hasTitleRow) { 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(colIndex, title)); + + ++colIndex; + } + + //逐行保存数据 + for (rowIndex = firstRowIndex; rowIndex >= lastRowIndex; rowIndex++) + { + //如果是标题行,就跳过 + if (rowIndex == titleRowIndex) + { + continue; + } + + //逐列绑定sql语句 + for (colIndex = firstColumnIndex; colIndex <= lastColumnIndex; colIndex++) + { + + } + + } +>>>>>>> 1c61f5c9c59d272bf37edf8d9217c4389b802ceb }