#include "stdafx.h" #include #include //Unicode 转 utf-8 bool WStringToString(const std::wstring &wstr, std::string &str) { int nLen = (int)wstr.length(); int nDesSize = WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)wstr.c_str(), nLen, NULL, 0, NULL, NULL); str.resize(nDesSize, '\0'); int nResult = WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)wstr.c_str(), nLen, (LPSTR)str.c_str(), nDesSize, NULL, NULL); if (nResult == 0) { //DWORD dwErrorCode = GetLastError(); return FALSE; } return TRUE; } int main() { const char Signal_0Name[][16] = { "id","chID","PTCPCBTem"," PTCOverHeat", "PTCOverCrnt","PTCOverVol"," PTCRlngCtr" ,"PTCActuCrnt","PTCActuPwr", "Ptc_work_statu","PTCUnderVol","PTCIGBTSts"," PTCHVLckSts","PTCIGBTOverHeat" ,"PTCChksm" }; const char Signal_1Name[][16] = { "id","chID","PTCSecRlngCtr", "PTCActuVol", " PTCINNTCSts","PTCOUTNTCSts", "PTCIGBTNTCSts" ,"PTCIGBTTem","PTCInptTem", "PTCOtptTem","PTCSecChksm" }; try { xlnt::workbook wb; xlnt::worksheet sheetMain = wb.active_sheet(); xlnt::worksheet sheet1 = wb.copy_sheet(sheetMain); xlnt::worksheet sheet2 = wb.copy_sheet(sheet1); //----------------sheetmain---------------------------------------------- //常规操作 sheetMain.cell("A1").value(5); sheetMain.cell("B2").value("string data"); sheetMain.cell("C3").formula("=RAND()"); //中文处理 std::string strDes; WStringToString(L"测试", strDes); sheetMain.cell(5, 5).value(strDes); sheetMain.title("main"); //----------------sheet1---------------------------------------------- //行批量写入 for (int i = 0; i<15; i++) { sheet1.cell(i + 1, 1).value(Signal_0Name[i]); } //常规操作 sheet1.cell("A2").value(5); sheet1.cell("B3").value("string data"); sheet1.cell("C4").formula("=RAND()"); //合并单元格 sheet1.merge_cells("C3:C4"); sheet1.freeze_panes("B2"); sheet1.title("sheet1"); //----------------sheet2---------------------------------------------- //列批量写入 for (int i = 0; i<11; i++) { sheet2.cell(1, i + 1).value(Signal_1Name[i]); } sheet2.cell("C1").value("C1"); sheet2.cell("B1").value("B1"); sheet2.title("sheet2"); sheet2.freeze_panes("B2"); wb.save("test.xlsx"); } catch (std::exception e) { std::string s = e.what(); } return 0; }