Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xuri
excelize
提交
a258e3d8
excelize
项目概览
xuri
/
excelize
通知
13
Star
2
Fork
4
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
excelize
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
a258e3d8
编写于
2月 02, 2024
作者:
F
funa12
提交者:
GitHub
2月 02, 2024
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix CalcCellValue does not return raw value when enable RawCellValue (#1803)
上级
99e91e19
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
23 addition
and
1 deletion
+23
-1
calc.go
calc.go
+1
-1
calc_test.go
calc_test.go
+22
-0
未找到文件。
calc.go
浏览文件 @
a258e3d8
...
...
@@ -823,7 +823,7 @@ func (f *File) CalcCellValue(sheet, cell string, opts ...Options) (result string
styleIdx, _ = f.GetCellStyle(sheet, cell)
}
result = token.Value()
if isNum, precision, decimal := isNumeric(result); isNum {
if isNum, precision, decimal := isNumeric(result); isNum
&& !rawCellValue
{
if precision > 15 {
result, err = f.formattedValue(&xlsxC{S: styleIdx, V: strings.ToUpper(strconv.FormatFloat(decimal, 'G', 15, 64))}, rawCellValue, CellTypeNumber)
return
...
...
calc_test.go
浏览文件 @
a258e3d8
...
...
@@ -6301,6 +6301,28 @@ func TestNestedFunctionsWithOperators(t *testing.T) {
}
}
func
TestFormulaRawCellValueOption
(
t
*
testing
.
T
)
{
f
:=
NewFile
()
rawTest
:=
[]
struct
{
value
string
raw
bool
expected
string
}{
{
"=
\"
10e3
\"
"
,
false
,
"10000"
},
{
"=
\"
10e3
\"
"
,
true
,
"10e3"
},
{
"=
\"
10
\"
&
\"
e3
\"
"
,
false
,
"10000"
},
{
"=
\"
10
\"
&
\"
e3
\"
"
,
true
,
"10e3"
},
{
"=
\"
1111111111111111
\"
"
,
false
,
"1.11111111111111E+15"
},
{
"=
\"
1111111111111111
\"
"
,
true
,
"1111111111111111"
},
}
for
_
,
test
:=
range
rawTest
{
assert
.
NoError
(
t
,
f
.
SetCellFormula
(
"Sheet1"
,
"A1"
,
test
.
value
))
val
,
err
:=
f
.
CalcCellValue
(
"Sheet1"
,
"A1"
,
Options
{
RawCellValue
:
test
.
raw
})
assert
.
NoError
(
t
,
err
)
assert
.
Equal
(
t
,
test
.
expected
,
val
)
}
}
func
TestFormulaArgToToken
(
t
*
testing
.
T
)
{
assert
.
Equal
(
t
,
efp
.
Token
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录