翻譯|使用教程|編輯:況魚杰|2019-12-24 13:26:25.557|閱讀 1056 次
概述:LibXL是一個可以讀寫Excel文件的庫,易用而且功能強大,不需要Microsoft Excel和.NET框架。本文將會介紹對于LibXL最常見的問題。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
LibXL是一個可以讀寫Excel文件的庫,易用而且功能強大,不需要Microsoft Excel和.NET框架。
問題一:
如何在單元格中添加多行文本?
答:
您應該在字符串中使用換行符\ n,并在單元格的格式中添加wrap屬性:
Format* format = book->addFormat(); format->setWrap(true); sheet->writeStr(1, 1, L"line one\nline two\nline three", format);
問題二:
如何鎖定工作表中的某些單元格?
答:
默認情況下,所有單元格都是鎖定的,但是您應該解鎖必要的單元格并使用Sheet :: setProtect()方法打開保護:
Format* format = book->addFormat(); format->setLocked(false); sheet->writeStr(5, 1, L"this cell can be changed !", format); sheet->writeNum(6, 1, 100, format); sheet->setProtect(true);
問題三:
與無法在初始化時將'const char *'轉換為'const wchar_t *'編譯錯誤怎么辦?
答:
在Visual Studio的項目設置中切換到Unicode字符集,或僅將_UNICODE預處理程序變量添加到項目設置中。您也可以在代碼中將所有wchar_t類型替換為char類型。
問題四:
如何在LibXL(char *而不是wchar_t *)中使用多字節字符?
答:
在Visual Studio的項目設置中切換為使用多字節字符集,或從項目設置中刪除_UNICODE預處理程序變量。
問題五:
如何在LibXL中使用UTF-8編碼?
答:
在Visual Studio的項目設置中切換為使用多字節字符集,或從項目設置中刪除_UNICODE預處理程序變量。還將以下行添加到您的代碼中:
book->setLocale("UTF-8");
問題六:
LibXL可以凍結某些行或列嗎?
答:
您可以使用Sheet :: split()方法凍結窗格:
sheet->split(1, 0); // freezes the first row sheet->split(0, 1); // freezes the first colum
問題七:
如何在LibXL顯示數字的3個十進制數字?
答:
只需添加新的自定義格式:
format->setNumFormat(book->addCustomNumFormat(L"0.000")); sheet->writeNum(1, 1, 100, format);
問題八:
如何在LibXL將URL添加到單元格?
答:
首先,需要定義URL格式:
Font* linkFont = book->addFont(); linkFont->setColor(COLOR_BLUE); linkFont->setUnderline(UNDERLINE_SINGLE); Format* linkFormat = book->addFormat(); linkFormat->setFont(linkFont);
第一種方法是在公式表達式中使用HYPERLINK:
sheet->writeFormula(1, 1, L"HYPERLINK(\"//www.libxl.com\")", linkFormat);
第二種方法是使用鏈接定義指定區域:
sheet->writeStr(1, 1, L"//www.libxl.com", linkFormat); sheet->addHyperlink(L"//www.libxl.com", 1, 1, 1, 1);
問題九:
LibXL可以計算公式表達式嗎?
答:
不幸的是LibXL沒有計算引擎,因此該庫只能讀取和寫入公式表達式,它無法計算它們。如果要獲取公式結果,則應在Microsoft Excel中打開一個輸出文件,然后保存。
問題十:
如何在LibXL將Excel列寬轉換為像素?
答:
列寬是用正常樣式的字體呈現的數字0、1、2,...,9的最大數字寬度的字符數來衡量的。 要將width的值轉換為以像素為單位的列寬,請使用以下計算:
px = ([100*{width}-0.5]*{Maximum Digit Width})/100 + 5,
其中{Maximum Digit Width} = 7為默認字體。
問題十一:
如何在LibXL將下拉列表添加到單元格?
答:
請使用Sheet :: addDataValidation()方法和VALIDATION_TYPE_LIST類型的數據驗證。
您可以在此處使用單元格引用作為列表:
sheet->addDataValidation(VALIDATION_TYPE_LIST, VALIDATION_OP_EQUAL, 5, 5, 5, 5, L"A2:A5");
或在此處用引號指定值列表:
sheet->addDataValidation(VALIDATION_TYPE_LIST, VALIDATION_OP_EQUAL, 6, 6, 6, 6, L"first,second,third");
想要了解或購買LibXL正版版權,請
更多精彩內容,歡迎關注下方的微信公眾號,獲取更多產品咨詢
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: