I’m interested why you don’t think 300 rows is a good idea – surely a CPT has more database overhead?
Anyway, this post helps;
https://felicoz.com/en/2017/05/acf-import-repeater-field-values-csv-programmatically/
if you add the line
add_row('repeater_name', array("",""));
in the while
loop, (obviously as many empty values as sub fields), then it will add the rows too.