彩票走势图

Excel文件管理工具LibXL常见问答合集

翻译|使用教程|编辑:况鱼杰|2019-12-24 13:26:25.557|阅读 1056 次

概述:LibXL是一个可以读写Excel文件的库,易用而且功能强大,不需要Microsoft Excel和.NET框架。本文将会介绍对于LibXL最常见的问题。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

LibXL是一个可以读写Excel文件的库,易用而且功能强大,不需要Microsoft Excel和.NET框架。    

点击下载LibXL v3.8.8最新试用版


问题一:

    如何在单元格中添加多行文本?

答:

    您应该在字符串中使用换行符\ 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正版版权,请

更多精彩内容,欢迎关注下方的微信公众号,获取更多产品咨询

慧聚IT


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP