Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xuri
excelize
提交
ce4f7a25
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 搜索 >>
未验证
提交
ce4f7a25
编写于
12月 19, 2022
作者:
B
Bayzet Tlyupov
提交者:
GitHub
12月 19, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
This closes #1416, support set row outline level to stream (#1422)
Co-authored-by:
N
TlyupovBM
<
bajjzet.tlyupov@vseinstrumenti.ru
>
上级
61fda0b1
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
41 addition
and
3 deletion
+41
-3
stream.go
stream.go
+13
-3
stream_test.go
stream_test.go
+28
-0
未找到文件。
stream.go
浏览文件 @
ce4f7a25
...
...
@@ -310,9 +310,10 @@ type Cell struct {
// RowOpts define the options for the set row, it can be used directly in
// StreamWriter.SetRow to specify the style and properties of the row.
type
RowOpts
struct
{
Height
float64
Hidden
bool
StyleID
int
Height
float64
Hidden
bool
StyleID
int
OutlineLevel
int
}
// marshalAttrs prepare attributes of the row.
...
...
@@ -328,6 +329,10 @@ func (r *RowOpts) marshalAttrs() (strings.Builder, error) {
err
=
ErrMaxRowHeight
return
attrs
,
err
}
if
r
.
OutlineLevel
>
7
{
err
=
ErrOutlineLevel
return
attrs
,
err
}
if
r
.
StyleID
>
0
{
attrs
.
WriteString
(
` s="`
)
attrs
.
WriteString
(
strconv
.
Itoa
(
r
.
StyleID
))
...
...
@@ -338,6 +343,11 @@ func (r *RowOpts) marshalAttrs() (strings.Builder, error) {
attrs
.
WriteString
(
strconv
.
FormatFloat
(
r
.
Height
,
'f'
,
-
1
,
64
))
attrs
.
WriteString
(
`" customHeight="1"`
)
}
if
r
.
OutlineLevel
>
0
{
attrs
.
WriteString
(
` outlineLevel="`
)
attrs
.
WriteString
(
strconv
.
Itoa
(
r
.
OutlineLevel
))
attrs
.
WriteString
(
`"`
)
}
if
r
.
Hidden
{
attrs
.
WriteString
(
` hidden="1"`
)
}
...
...
stream_test.go
浏览文件 @
ce4f7a25
...
...
@@ -358,3 +358,31 @@ func TestStreamSetCellValFunc(t *testing.T) {
assert
.
NoError
(
t
,
sw
.
setCellValFunc
(
c
,
nil
))
assert
.
NoError
(
t
,
sw
.
setCellValFunc
(
c
,
complex64
(
5
+
10i
)))
}
func
TestStreamWriterOutlineLevel
(
t
*
testing
.
T
)
{
file
:=
NewFile
()
streamWriter
,
err
:=
file
.
NewStreamWriter
(
"Sheet1"
)
assert
.
NoError
(
t
,
err
)
// Test set outlineLevel in row.
assert
.
NoError
(
t
,
streamWriter
.
SetRow
(
"A1"
,
nil
,
RowOpts
{
OutlineLevel
:
1
}))
assert
.
NoError
(
t
,
streamWriter
.
SetRow
(
"A2"
,
nil
,
RowOpts
{
OutlineLevel
:
7
}))
assert
.
ErrorIs
(
t
,
ErrOutlineLevel
,
streamWriter
.
SetRow
(
"A3"
,
nil
,
RowOpts
{
OutlineLevel
:
8
}))
assert
.
NoError
(
t
,
streamWriter
.
Flush
())
// Save spreadsheet by the given path.
assert
.
NoError
(
t
,
file
.
SaveAs
(
filepath
.
Join
(
"test"
,
"TestStreamWriterSetRowOutlineLevel.xlsx"
)))
file
,
err
=
OpenFile
(
filepath
.
Join
(
"test"
,
"TestStreamWriterSetRowOutlineLevel.xlsx"
))
assert
.
NoError
(
t
,
err
)
level
,
err
:=
file
.
GetRowOutlineLevel
(
"Sheet1"
,
1
)
assert
.
NoError
(
t
,
err
)
assert
.
Equal
(
t
,
uint8
(
1
),
level
)
level
,
err
=
file
.
GetRowOutlineLevel
(
"Sheet1"
,
2
)
assert
.
NoError
(
t
,
err
)
assert
.
Equal
(
t
,
uint8
(
7
),
level
)
level
,
err
=
file
.
GetRowOutlineLevel
(
"Sheet1"
,
3
)
assert
.
NoError
(
t
,
err
)
assert
.
Equal
(
t
,
uint8
(
0
),
level
)
assert
.
NoError
(
t
,
file
.
Close
())
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录