@@ -12,6 +12,7 @@ use crate::wrapper::{
12
12
use super :: {
13
13
excel_data:: { JsExcelData , JsExcelDataArray , JsExcelDataMatrix } ,
14
14
formula:: Formula ,
15
+ rich_string:: RichString ,
15
16
url:: Url ,
16
17
} ;
17
18
@@ -282,7 +283,7 @@ impl Worksheet {
282
283
let mut book = self . workbook . lock ( ) . unwrap ( ) ;
283
284
let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
284
285
let data: ExcelData = data. try_into ( ) ?;
285
- let _ = map_xlsx_error ( sheet. write_with_format ( row, col, data, & format. get ( ) ) ) ?;
286
+ let _ = map_xlsx_error ( sheet. write_with_format ( row, col, data, & format. lock ( ) ) ) ?;
286
287
Ok ( self . clone ( ) )
287
288
}
288
289
@@ -319,7 +320,7 @@ impl Worksheet {
319
320
) -> WasmResult < Worksheet > {
320
321
let mut book = self . workbook . lock ( ) . unwrap ( ) ;
321
322
let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
322
- let _ = map_xlsx_error ( sheet. write_blank ( row, col, & format. get ( ) ) ) ?;
323
+ let _ = map_xlsx_error ( sheet. write_blank ( row, col, & format. lock ( ) ) ) ?;
323
324
Ok ( self . clone ( ) )
324
325
}
325
326
@@ -392,7 +393,7 @@ impl Worksheet {
392
393
) -> WasmResult < Worksheet > {
393
394
let mut book = self . workbook . lock ( ) . unwrap ( ) ;
394
395
let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
395
- let _ = map_xlsx_error ( sheet. write_string_with_format ( row, col, string, & format. get ( ) ) ) ?;
396
+ let _ = map_xlsx_error ( sheet. write_string_with_format ( row, col, string, & format. lock ( ) ) ) ?;
396
397
Ok ( self . clone ( ) )
397
398
}
398
399
@@ -493,7 +494,7 @@ impl Worksheet {
493
494
) -> WasmResult < Worksheet > {
494
495
let mut book = self . workbook . lock ( ) . unwrap ( ) ;
495
496
let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
496
- let _ = map_xlsx_error ( sheet. write_number_with_format ( row, col, number, & format. get ( ) ) ) ?;
497
+ let _ = map_xlsx_error ( sheet. write_number_with_format ( row, col, number, & format. lock ( ) ) ) ?;
497
498
Ok ( self . clone ( ) )
498
499
}
499
500
@@ -552,7 +553,7 @@ impl Worksheet {
552
553
) -> WasmResult < Worksheet > {
553
554
let mut book = self . workbook . lock ( ) . unwrap ( ) ;
554
555
let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
555
- let _ = map_xlsx_error ( sheet. write_boolean_with_format ( row, col, boolean, & format. get ( ) ) ) ?;
556
+ let _ = map_xlsx_error ( sheet. write_boolean_with_format ( row, col, boolean, & format. lock ( ) ) ) ?;
556
557
Ok ( self . clone ( ) )
557
558
}
558
559
@@ -627,15 +628,13 @@ impl Worksheet {
627
628
let mut book = self . workbook . lock ( ) . unwrap ( ) ;
628
629
let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
629
630
if let Some ( dt) = utils:: datetime_of_jsval ( datetime. clone ( ) ) {
630
- let _ = map_xlsx_error ( sheet. write_datetime_with_format ( row, col, dt, & format. get ( ) ) ) ?;
631
+ let _ = map_xlsx_error ( sheet. write_datetime_with_format ( row, col, dt, & format. lock ( ) ) ) ?;
631
632
Ok ( self . clone ( ) )
632
633
} else {
633
634
Err ( XlsxError :: InvalidDate )
634
635
}
635
636
}
636
637
637
- // TODO: write_rich_string
638
-
639
638
#[ wasm_bindgen( js_name = "writeFormula" ) ]
640
639
pub fn write_formula (
641
640
& self ,
@@ -663,7 +662,7 @@ impl Worksheet {
663
662
row,
664
663
col,
665
664
formula. inner . clone ( ) ,
666
- & format. get ( ) ,
665
+ & format. lock ( ) ,
667
666
) ) ?;
668
667
Ok ( self . clone ( ) )
669
668
}
@@ -691,7 +690,7 @@ impl Worksheet {
691
690
) -> WasmResult < Worksheet > {
692
691
let mut book = self . workbook . lock ( ) . unwrap ( ) ;
693
692
let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
694
- let _ = map_xlsx_error ( sheet. write_url_with_format ( row, col, & link. inner , & format. get ( ) ) ) ?;
693
+ let _ = map_xlsx_error ( sheet. write_url_with_format ( row, col, & link. inner , & format. lock ( ) ) ) ?;
695
694
Ok ( self . clone ( ) )
696
695
}
697
696
@@ -727,7 +726,43 @@ impl Worksheet {
727
726
& link. inner ,
728
727
text,
729
728
tip,
730
- format. map ( |f| f. get ( ) . clone ( ) ) . as_ref ( ) ,
729
+ format. map ( |f| f. lock ( ) . clone ( ) ) . as_ref ( ) ,
730
+ ) ) ?;
731
+ Ok ( self . clone ( ) )
732
+ }
733
+
734
+ #[ wasm_bindgen( js_name = "writeRichString" ) ]
735
+ pub fn write_rich_string (
736
+ & self ,
737
+ row : xlsx:: RowNum ,
738
+ col : xlsx:: ColNum ,
739
+ rich_string : & RichString ,
740
+ ) -> WasmResult < Worksheet > {
741
+ let mut book = self . workbook . lock ( ) . unwrap ( ) ;
742
+ let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
743
+ let rich_string = rich_string. lock ( ) ;
744
+ let rich_string: Vec < _ > = rich_string. iter ( ) . map ( |( f, s) | ( f, s. as_str ( ) ) ) . collect ( ) ;
745
+ let _ = map_xlsx_error ( sheet. write_rich_string ( row, col, & rich_string) ) ?;
746
+ Ok ( self . clone ( ) )
747
+ }
748
+
749
+ #[ wasm_bindgen( js_name = "writeRichStringWithFormat" ) ]
750
+ pub fn write_rich_string_with_format (
751
+ & self ,
752
+ row : xlsx:: RowNum ,
753
+ col : xlsx:: ColNum ,
754
+ rich_string : & RichString ,
755
+ format : & Format ,
756
+ ) -> WasmResult < Worksheet > {
757
+ let mut book = self . workbook . lock ( ) . unwrap ( ) ;
758
+ let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
759
+ let rich_string = rich_string. lock ( ) ;
760
+ let rich_string: Vec < _ > = rich_string. iter ( ) . map ( |( f, s) | ( f, s. as_str ( ) ) ) . collect ( ) ;
761
+ let _ = map_xlsx_error ( sheet. write_rich_string_with_format (
762
+ row,
763
+ col,
764
+ & rich_string,
765
+ & format. lock ( ) ,
731
766
) ) ?;
732
767
Ok ( self . clone ( ) )
733
768
}
@@ -757,7 +792,7 @@ impl Worksheet {
757
792
let mut book = self . workbook . lock ( ) . unwrap ( ) ;
758
793
let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
759
794
let values: Vec < ExcelData > = values. try_into ( ) ?;
760
- let _ = map_xlsx_error ( sheet. write_column_with_format ( row, col, values, & format. get ( ) ) ) ?;
795
+ let _ = map_xlsx_error ( sheet. write_column_with_format ( row, col, values, & format. lock ( ) ) ) ?;
761
796
Ok ( self . clone ( ) )
762
797
}
763
798
@@ -800,7 +835,7 @@ impl Worksheet {
800
835
let mut book = self . workbook . lock ( ) . unwrap ( ) ;
801
836
let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
802
837
let values: Vec < ExcelData > = values. try_into ( ) ?;
803
- let _ = map_xlsx_error ( sheet. write_row_with_format ( row, col, values, & format. get ( ) ) ) ?;
838
+ let _ = map_xlsx_error ( sheet. write_row_with_format ( row, col, values, & format. lock ( ) ) ) ?;
804
839
Ok ( self . clone ( ) )
805
840
}
806
841
@@ -857,7 +892,7 @@ impl Worksheet {
857
892
last_row,
858
893
last_col,
859
894
formula. inner . clone ( ) ,
860
- & format. get ( ) ,
895
+ & format. lock ( ) ,
861
896
) ) ?;
862
897
Ok ( self . clone ( ) )
863
898
}
@@ -901,7 +936,7 @@ impl Worksheet {
901
936
last_row,
902
937
last_col,
903
938
formula. inner . clone ( ) ,
904
- & format. get ( ) ,
939
+ & format. lock ( ) ,
905
940
) ) ?;
906
941
Ok ( self . clone ( ) )
907
942
}
@@ -945,7 +980,7 @@ impl Worksheet {
945
980
last_row,
946
981
last_col,
947
982
formula. inner . clone ( ) ,
948
- & format. get ( ) ,
983
+ & format. lock ( ) ,
949
984
) ) ?;
950
985
Ok ( self . clone ( ) )
951
986
}
@@ -1017,7 +1052,7 @@ impl Worksheet {
1017
1052
let mut book = self . workbook . lock ( ) . unwrap ( ) ;
1018
1053
let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
1019
1054
let _ =
1020
- map_xlsx_error ( sheet. embed_image_with_format ( row, col, & image. inner , & format. get ( ) ) ) ?;
1055
+ map_xlsx_error ( sheet. embed_image_with_format ( row, col, & image. inner , & format. lock ( ) ) ) ?;
1021
1056
Ok ( self . clone ( ) )
1022
1057
}
1023
1058
@@ -1293,23 +1328,19 @@ impl Worksheet {
1293
1328
last_row,
1294
1329
last_col,
1295
1330
value,
1296
- & format. get ( ) ,
1331
+ & format. lock ( ) ,
1297
1332
) ) ?;
1298
1333
Ok ( self . clone ( ) )
1299
1334
}
1300
-
1335
+
1301
1336
#[ wasm_bindgen( js_name = "setRowHeight" ) ]
1302
- pub fn set_row_height (
1303
- & mut self ,
1304
- row : xlsx:: RowNum ,
1305
- height : f64 ,
1306
- ) -> WasmResult < Worksheet > {
1337
+ pub fn set_row_height ( & mut self , row : xlsx:: RowNum , height : f64 ) -> WasmResult < Worksheet > {
1307
1338
let mut book = self . workbook . lock ( ) . unwrap ( ) ;
1308
1339
let sheet = book. worksheet_from_index ( self . index ) . unwrap ( ) ;
1309
1340
let _ = map_xlsx_error ( sheet. set_row_height ( row, height) ) ?;
1310
1341
Ok ( self . clone ( ) )
1311
1342
}
1312
-
1343
+
1313
1344
#[ wasm_bindgen( js_name = "setRowHeightPixels" ) ]
1314
1345
pub fn set_row_height_pixels (
1315
1346
& mut self ,
@@ -1338,7 +1369,7 @@ impl Worksheet {
1338
1369
first_col,
1339
1370
last_row,
1340
1371
last_col,
1341
- & format. get ( ) ,
1372
+ & format. lock ( ) ,
1342
1373
) ) ?;
1343
1374
Ok ( self . clone ( ) )
1344
1375
}
@@ -1360,8 +1391,8 @@ impl Worksheet {
1360
1391
first_col,
1361
1392
last_row,
1362
1393
last_col,
1363
- & format. get ( ) ,
1364
- & border_format. get ( ) ,
1394
+ & format. lock ( ) ,
1395
+ & border_format. lock ( ) ,
1365
1396
) ) ?;
1366
1397
Ok ( self . clone ( ) )
1367
1398
}
0 commit comments