| | |
| | | using namespace xls; |
| | | using namespace xlslib_core; |
| | | |
| | | void ExcelUtil::save(list<TradeData> data, string path) { |
| | | list<TradeData>::iterator ele1= data.begin(); |
| | | void ExcelUtil::save(list<TradeData*> data, string path) { |
| | | list<TradeData*>::iterator ele1= data.begin(); |
| | | Json::Value root,item; |
| | | Json::StreamWriterBuilder writerBuilder; |
| | | //自动换行 |
| | | writerBuilder.settings_["indentation"] = ""; |
| | | item["time"] = (*ele1).time; |
| | | item["price"] = (*ele1).price; |
| | | item["num"] = (*ele1).num; |
| | | item["time"] = (*ele1)->time; |
| | | item["price"] = (*ele1)->price; |
| | | item["num"] = (*ele1)->num; |
| | | root[0] = item; |
| | | std::ostringstream os; |
| | | std::unique_ptr<Json::StreamWriter> jsonWriter(writerBuilder.newStreamWriter()); |
| | |
| | | |
| | | |
| | | int index = 0; |
| | | list<TradeData>::iterator ele; |
| | | list<TradeData*>::iterator ele; |
| | | for (ele = data.begin();ele != data.end();ele++) { |
| | | TradeData tradeData = *ele; |
| | | TradeData *tradeData = *ele; |
| | | index++; |
| | | |
| | | std::ostringstream out_str; |
| | | out_str << setiosflags(ios::fixed) << std::setprecision(2) << stof(tradeData.price); |
| | | out_str << setiosflags(ios::fixed) << std::setprecision(2) << stof(tradeData->price); |
| | | |
| | | |
| | | |
| | | string t = tradeData.time; |
| | | if (tradeData.cancelTime > 0) |
| | | string t = tradeData->time; |
| | | if (tradeData->cancelTime > 0) |
| | | { |
| | | t.append(" ").append(to_string(tradeData.cancelTime)); |
| | | t.append(" ").append(to_string(tradeData->cancelTime)); |
| | | string cancelTimeUnit; |
| | | if (tradeData.cancelTimeUnit == TIME_SECOND) { |
| | | if (tradeData->cancelTimeUnit == TIME_SECOND) { |
| | | cancelTimeUnit = "s"; |
| | | } |
| | | else if (tradeData.cancelTimeUnit == TIME_MINITE) { |
| | | else if (tradeData->cancelTimeUnit == TIME_MINITE) { |
| | | cancelTimeUnit = "m"; |
| | | } |
| | | else if (tradeData.cancelTimeUnit == TIME_HOUR) { |
| | | else if (tradeData->cancelTimeUnit == TIME_HOUR) { |
| | | cancelTimeUnit = "h"; |
| | | } |
| | | t.append(cancelTimeUnit); |
| | | } |
| | | ws->label(index, 0,t, xf); |
| | | ws->label(index, 1, out_str.str(), xf); |
| | | if (tradeData.limitPrice == LIMIT_PRICE_NORMAL) { |
| | | if (tradeData->limitPrice == LIMIT_PRICE_NORMAL) { |
| | | ws->label(index, 2, L"正常价", xf); |
| | | } |
| | | else if (tradeData.limitPrice == LIMIT_PRICE_UP) { |
| | | else if (tradeData->limitPrice == LIMIT_PRICE_UP) { |
| | | ws->label(index, 2, L"涨停价", xf); |
| | | } |
| | | else if (tradeData.limitPrice == LIMIT_PRICE_DOWN) { |
| | | else if (tradeData->limitPrice == LIMIT_PRICE_DOWN) { |
| | | ws->label(index, 2, L"跌停价", xf); |
| | | } |
| | | ws->label(index, 3, to_string(tradeData.num), xf); |
| | | ws->label(index, 3, to_string(tradeData->num), xf); |
| | | |
| | | |
| | | |
| | | wstring operate; |
| | | switch (tradeData.operateType) |
| | | switch (tradeData->operateType) |
| | | { |
| | | case OPERATE_BUY: |
| | | operate = L"买";break; |