- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是在框架 header 中声明的签名:
const char* XLAPIENTRY xlSheetReadStrA(SheetHandle handle, int row, int col, FormatHandle* format);
这是 ReadStr 的文档: http://www.libxl.com/spreadsheet.html
这是我们当前读取单元格的方式:
func readNillableString(row:Int32, col:Int32) -> String? {
let value:String? = String(format: "%s", xlSheetReadStrA(sheet, row, col, nil) ?? "").trimmingCharacters(in: .whitespacesAndNewlines)
let set = NSMutableCharacterSet.alphanumeric()
set.addCharacters(in: "., +%%()/[]:-_ ®÷")
if self.rangeOfCharacter(from: set.inverted) != nil || self.isEmpty {
return nil
}
if value?.isEmpty == true {
return nil
}
return value
}
但实际上,我们要做的只是将 excel 单元格中的值转换为 Swift 字符串
主要问题是空单元格,当我们在空单元格上调用 xlSheetReadStrA
并获取 char*
返回并将其转换为 String
,这是结果:
(lldb) po value
▿ Optional<String>
- some : "hÿh\u{03}\u{01}"
似乎我们正在做很多不必要的错误处理,当我们基本上只是想要一种方法来快速返回一个 String
如果有一个值,而 nil
如果没有
rangeOfCharacter
调用只是一种确定单元格是否为空的方法...
有没有人有任何 LibXL 经验,或者可以看看这个解析代码并想出更好的方法来做到这一点?我认为 char* xlSheetReadStrA
返回值的原始转换可能会更有效,这将消除对以下检查的需要
最佳答案
我从未使用过 LibXL,但您的代码无法正确处理 nil
情况。
尝试这样的事情:
func readNillableString(row:Int32, col:Int32) -> String? {
guard let cStr = xlSheetReadStrA(sheet, row, col, nil) else {
return nil
}
let value = String(cString: cStr).trimmingCharacters(in: .whitespacesAndNewlines)
if value.isEmpty {
return nil
}
return value
}
试试看会发生什么。
关于swift - 如何将此 char* 转换为 String 可选?使用 LibXL 中的 xlSheetReadStrA,检查空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51831619/
我正在尝试在 libXL 中使用自定义颜色,我注意到图书馆里大约有 80 种基本颜色,有谁知道如何使用此库为单元格设置自定义颜色,因为文档中没有任何与之相关的信息。 现在我尝试执行以下操作: $do
这是加载 xls/xlsx 文件的代码: int main() { BookHandle book = xlCreateBook(); if(book) { i
好的。所以我使用 libXL 来解析 .xlsx 文件。我遇到了一个奇怪的错误,因为当我调用 sheet->readNum(row, col) 函数时,它会完成它的工作,但只有 45-47 次。我检查
我从官方网站安装了 libxl 包文件。它在 include_cpp 文件夹中包含头文件,在 libs 文件夹中包含 libxl.lib。我正在使用 QT(cpp) 来运行我的项目。我能够将 libx
我正在处理 libXL 和 Office365 的问题。我用 Office 365 创建了一个 Excel 文件:一个简单的公式,它显示了另一个工作表中单元格的内容。然后我继续通过libXl 在那个源
使用 IOS 的 libxl 示例项目,我试图在包中打开一个现有的 xls 文件 BookHandle book = xlCreateBook(); xlBookLoad(book,"Beta-1.x
我正在尝试将西里尔字符写入在 OSX 应用程序中生成的电子表格中: sheet = xlBookAddSheet(book, "Output", 0); detailFormat = xlBookAd
我正在尝试在 CodeBlocks 上使用名为 LibXL[for C++] 的第三方库为我的 Mini 项目执行此代码。 #include "libxl.h" #include #include
我正在尝试在 Windows 上构建 PHP 以及用于 Excel 操作的流行 C 库,LibXL .这个库有一个原生的基于 PHP 对象的扩展名为 php_excel .我正在尝试将后者构建为 Wi
我尝试使用来自 Perl 6(最新版本)的 libXL 和 NativeCall . 我无法让 utf-8 正确保存创建的 xlsx 文件。 只有 CArray[uint16]似乎工作,也没有编码 S
我有多个 .xls (~100MB) 文件,我想将多个工作表(从每个工作表)作为数据框加载到 R 中。我试过各种功能,如xlsx::xlsx2和 XLConnect::readWorksheetFro
我打算制作一个应用程序,其数据源来自 Excel 文件。所以基本上期望的结果是使我的应用程序数据与 Excel 文件同步。我搜索并找到了 libxls,这似乎是一个解决方案? 我下载了用于 xCode
我正在致力于通过 PHP 将大量数据从 Excel 导入/导出 MySQL。我有一个可行的解决方案,但它占用大量内存且速度很慢。 我看到一位开发人员制作了一个包含 libXL 的 Unix 构建 PH
在我的 iOS 应用程序中,我想生成 excel(.xlsm) 文件。我使用了 libXl 库。( http://www.libxl.com/ )这个库可以支持Excel 97 -2003格式(xls
我正在尝试编写一个使用 libXL 的 QT 应用程序,但是当我尝试编译时,我收到一个弹出框,上面写着“在启动过程中程序以代码 0xc0000135 退出”。我已经确定是哪一行导致了问题,它是 sta
这是在框架 header 中声明的签名: const char* XLAPIENTRY xlSheetReadStrA(SheetHandle handle, int row, int col, Fo
我想读取网站 Link 中 Excel 文件的第 1 张数据。使用 Excel 文件的 url。我使用的是 Windows 10 R 3.6.1。 我正在尝试使用 Read Excel file fr
我试过在 VC9 上编译 PHP 扩展 php_excel (v1.0.0) 但没有成功,有人能提供指导吗?我已经使用在网上找到的注释来编译其他 PHP 扩展作为引用,但是有很多未知数,我不是 C 开
我是一名优秀的程序员,十分优秀!