Skip to content

Commit 79d66da

Browse files
committed
Reorder function implement, and remove duplicated functions
- Rename set_row_outline to set_row_outline_level - Update unit tests for get_row_height
1 parent 291f4f7 commit 79d66da

3 files changed

Lines changed: 45 additions & 125 deletions

File tree

excelize.py

Lines changed: 7 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -779,7 +779,7 @@ def add_comment(self, sheet: str, opts: Comment) -> None:
779779

780780
def add_form_control(self, sheet: str, opts: FormControl) -> None:
781781
"""
782-
Add form control button in a worksheet by given worksheet name and form
782+
Add form control object in a worksheet by given worksheet name and form
783783
control options. Supported form control type: button, check box, group
784784
box, label, option button, scroll bar and spinner. If set macro for the
785785
form control, the workbook extension should be XLSM or XLTM. Scroll
@@ -1554,8 +1554,8 @@ def get_app_props(self) -> Optional[AppProperties]:
15541554
Get document application properties.
15551555
15561556
Returns:
1557-
Optional[AppProperties]: Return the the app properties if no
1558-
error occurred, otherwise raise a RuntimeError with the message.
1557+
Optional[AppProperties]: Return the app properties if no error
1558+
occurred, otherwise raise a RuntimeError with the message.
15591559
"""
15601560
lib.GetAppProps.restype = types_go._GetAppPropsResult
15611561
res = lib.GetAppProps(self.file_index)
@@ -1723,59 +1723,7 @@ def get_row_outline_level(self, sheet: str, row: int) -> int:
17231723
```
17241724
"""
17251725
lib.GetRowOutlineLevel.restype = types_go._IntErrorResult
1726-
res = lib.GetRowOutlineLevel(
1727-
self.file_index, sheet.encode(ENCODE), row
1728-
)
1729-
err = res.err.decode(ENCODE)
1730-
if not err:
1731-
return res.val
1732-
raise RuntimeError(err)
1733-
1734-
def get_row_style(self, sheet: str, row: int) -> int:
1735-
"""
1736-
Get row style ID by given worksheet name and row number.
1737-
1738-
Args:
1739-
sheet (str): The worksheet name
1740-
row (int): The row number
1741-
1742-
Returns:
1743-
int: Return the row style ID if no error occurred, otherwise
1744-
raise a RuntimeError with the message.
1745-
"""
1746-
lib.GetRowStyle.restype = types_go._IntErrorResult
1747-
res = lib.GetRowStyle(self.file_index, sheet.encode(ENCODE), row)
1748-
err = res.err.decode(ENCODE)
1749-
if not err:
1750-
return res.val
1751-
raise RuntimeError(err)
1752-
1753-
def get_row_visible(self, sheet: str, row: int) -> bool:
1754-
"""
1755-
Get visible of a single row by given worksheet name and row number.
1756-
1757-
Args:
1758-
sheet (str): The worksheet name
1759-
row (int): The row number
1760-
1761-
Returns:
1762-
bool: Return the row visible if no error occurred, otherwise
1763-
raise a RuntimeError with the message.
1764-
1765-
Example:
1766-
For example, get visible state of row 5 in Sheet1:
1767-
1768-
```python
1769-
try:
1770-
visible = f.get_row_visible("Sheet1", 5)
1771-
except RuntimeError as err:
1772-
print(err)
1773-
```
1774-
"""
1775-
lib.GetRowVisible.restype = types_go._BoolErrorResult
1776-
res = lib.GetRowVisible(
1777-
self.file_index, sheet.encode(ENCODE), row
1778-
)
1726+
res = lib.GetRowOutlineLevel(self.file_index, sheet.encode(ENCODE), row)
17791727
err = res.err.decode(ENCODE)
17801728
if not err:
17811729
return res.val
@@ -2086,7 +2034,7 @@ def get_sheet_map(self) -> Dict[int, str]:
20862034
sheets ID, and name maps of the workbook.
20872035
20882036
Returns:
2089-
dict[int, str]: Return the sheet ID and name map if no error
2037+
Dict[int, str]: Return the sheet ID and name map if no error
20902038
occurred, otherwise return an empty dictionary.
20912039
"""
20922040
lib.GetSheetMap.restype = types_go._GetSheetMapResult
@@ -3474,7 +3422,7 @@ def set_row_height(self, sheet: str, row: int, height: float) -> None:
34743422
if err != "":
34753423
raise RuntimeError(err)
34763424

3477-
def set_row_outline(self, sheet: str, row: int, level: int) -> None:
3425+
def set_row_outline_level(self, sheet: str, row: int, level: int) -> None:
34783426
"""
34793427
Set outline level number of a single row by given worksheet name and
34803428
Excel row number. The value of parameter 'level' is 1-7.
@@ -3493,7 +3441,7 @@ def set_row_outline(self, sheet: str, row: int, level: int) -> None:
34933441
34943442
```python
34953443
try:
3496-
f.set_row_outline("Sheet1", 2, 1)
3444+
f.set_row_outline_level("Sheet1", 2, 1)
34973445
except RuntimeError as err:
34983446
print(err)
34993447
```

main.go

Lines changed: 33 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ func AddComment(idx int, sheet *C.char, opts *C.struct_Comment) *C.char {
524524
return C.CString(emptyString)
525525
}
526526

527-
// AddFormControl provides the method to add form control button in a worksheet
527+
// AddFormControl provides the method to add form control object in a worksheet
528528
// by given worksheet name and form control options. Supported form control
529529
// type: button, check box, group box, label, option button, scroll bar and
530530
// spinner. If set macro for the form control, the workbook extension should be
@@ -1126,70 +1126,6 @@ func GetCellValue(idx int, sheet, cell *C.char, opts *C.struct_Options) C.struct
11261126
return C.struct_StringErrorResult{val: C.CString(val), err: C.CString(emptyString)}
11271127
}
11281128

1129-
// GetRowOutlineLevel provides a function to get outline level of a single row by given
1130-
// worksheet name and row number. This function is concurrency safe.
1131-
//
1132-
//export GetRowOutlineLevel
1133-
func GetRowOutlineLevel(idx int, sheet *C.char, row C.int) C.struct_IntErrorResult {
1134-
f, ok := files.Load(idx)
1135-
if !ok {
1136-
return C.struct_IntErrorResult{val: C.int(0), err: C.CString(errFilePtr)}
1137-
}
1138-
val, err := f.(*excelize.File).GetRowOutlineLevel(C.GoString(sheet), int(row))
1139-
if err != nil {
1140-
return C.struct_IntErrorResult{val: C.int(int32(val)), err: C.CString(err.Error())}
1141-
}
1142-
return C.struct_IntErrorResult{val: C.int(int32(val)), err: C.CString(emptyString)}
1143-
}
1144-
1145-
// GetRowStyle provides a function to get row style ID by given worksheet
1146-
// name and row number. This function is concurrency safe.
1147-
//
1148-
//export GetRowStyle
1149-
func GetRowStyle(idx int, sheet *C.char, row C.int) C.struct_IntErrorResult {
1150-
f, ok := files.Load(idx)
1151-
if !ok {
1152-
return C.struct_IntErrorResult{val: C.int(0), err: C.CString(errFilePtr)}
1153-
}
1154-
val, err := f.(*excelize.File).GetRowStyle(C.GoString(sheet), int(row))
1155-
if err != nil {
1156-
return C.struct_IntErrorResult{val: C.int(val), err: C.CString(err.Error())}
1157-
}
1158-
return C.struct_IntErrorResult{val: C.int(val), err: C.CString(emptyString)}
1159-
}
1160-
1161-
// GetRowVisible provides a function to get visible of a single row by given
1162-
// worksheet name and row number. This function is concurrency safe.
1163-
//
1164-
//export GetRowVisible
1165-
func GetRowVisible(idx int, sheet *C.char, row C.int) C.struct_BoolErrorResult {
1166-
f, ok := files.Load(idx)
1167-
if !ok {
1168-
return C.struct_BoolErrorResult{val: C._Bool(false), err: C.CString(errFilePtr)}
1169-
}
1170-
val, err := f.(*excelize.File).GetRowVisible(C.GoString(sheet), int(row))
1171-
if err != nil {
1172-
return C.struct_BoolErrorResult{val: C._Bool(val), err: C.CString(err.Error())}
1173-
}
1174-
return C.struct_BoolErrorResult{val: C._Bool(val), err: C.CString(emptyString)}
1175-
}
1176-
1177-
// GetRowHeight provides a function to get row height by given worksheet name
1178-
// and row number. This function is concurrency safe.
1179-
//
1180-
//export GetRowHeight
1181-
func GetRowHeight(idx int, sheet *C.char, row C.int) C.struct_Float64ErrorResult {
1182-
f, ok := files.Load(idx)
1183-
if !ok {
1184-
return C.struct_Float64ErrorResult{val: C.double(0), err: C.CString(errFilePtr)}
1185-
}
1186-
val, err := f.(*excelize.File).GetRowHeight(C.GoString(sheet), int(row))
1187-
if err != nil {
1188-
return C.struct_Float64ErrorResult{val: C.double(val), err: C.CString(err.Error())}
1189-
}
1190-
return C.struct_Float64ErrorResult{val: C.double(val), err: C.CString(emptyString)}
1191-
}
1192-
11931129
// GetColOutlineLevel provides a function to get outline level of a single
11941130
// column by given worksheet name and column name.
11951131
//
@@ -1293,6 +1229,38 @@ func GetDefaultFont(idx int) C.struct_StringErrorResult {
12931229
return C.struct_StringErrorResult{val: C.CString(val), err: C.CString(emptyString)}
12941230
}
12951231

1232+
// GetRowHeight provides a function to get row height by given worksheet name
1233+
// and row number.
1234+
//
1235+
//export GetRowHeight
1236+
func GetRowHeight(idx int, sheet *C.char, row C.int) C.struct_Float64ErrorResult {
1237+
f, ok := files.Load(idx)
1238+
if !ok {
1239+
return C.struct_Float64ErrorResult{val: C.double(0), err: C.CString(errFilePtr)}
1240+
}
1241+
val, err := f.(*excelize.File).GetRowHeight(C.GoString(sheet), int(row))
1242+
if err != nil {
1243+
return C.struct_Float64ErrorResult{val: C.double(val), err: C.CString(err.Error())}
1244+
}
1245+
return C.struct_Float64ErrorResult{val: C.double(val), err: C.CString(emptyString)}
1246+
}
1247+
1248+
// GetRowOutlineLevel provides a function to get outline level of a single row
1249+
// by given worksheet name and row number.
1250+
//
1251+
//export GetRowOutlineLevel
1252+
func GetRowOutlineLevel(idx int, sheet *C.char, row C.int) C.struct_IntErrorResult {
1253+
f, ok := files.Load(idx)
1254+
if !ok {
1255+
return C.struct_IntErrorResult{val: C.int(0), err: C.CString(errFilePtr)}
1256+
}
1257+
val, err := f.(*excelize.File).GetRowOutlineLevel(C.GoString(sheet), int(row))
1258+
if err != nil {
1259+
return C.struct_IntErrorResult{val: C.int(int32(val)), err: C.CString(err.Error())}
1260+
}
1261+
return C.struct_IntErrorResult{val: C.int(int32(val)), err: C.CString(emptyString)}
1262+
}
1263+
12961264
// GetRowVisible provides a function to get visible of a single row by given
12971265
// worksheet name and Excel row number.
12981266
//

test_excelize.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ def test_style(self):
352352

353353
self.assertIsNone(f.set_row_outline_level("Sheet1", 2, 1))
354354
with self.assertRaises(RuntimeError) as context:
355-
f.set_row_outline("SheetN", 2, 1)
355+
f.set_row_outline_level("SheetN", 2, 1)
356356
self.assertEqual(str(context.exception), "sheet SheetN does not exist")
357357
self.assertEqual(f.get_row_outline_level("Sheet1", 2), 1)
358358
with self.assertRaises(RuntimeError) as context:
@@ -1229,6 +1229,10 @@ def test_cell_hyperlink(self):
12291229
def test_cell_rich_text(self):
12301230
f = excelize.new_file()
12311231
self.assertIsNone(f.set_row_height("Sheet1", 1, 35))
1232+
self.assertEqual(f.get_row_height("Sheet1", 1), 35)
1233+
with self.assertRaises(RuntimeError) as context:
1234+
f.get_row_height("SheetN", 1)
1235+
self.assertEqual(str(context.exception), "sheet SheetN does not exist")
12321236

12331237
with self.assertRaises(RuntimeError) as context:
12341238
f.set_row_height("Sheet1", 0, 35)

0 commit comments

Comments
 (0)