Первая проблема заключается в том, что ваши переменные, хранящие данные типа variantPrice
, в настоящее время представляют собой массивы, содержащие только один элемент, который является кортежем - это потому, что вы разделили элементы, используя ,
, а не ;
. Скорее всего, вам понадобится что-то вроде:
let variantPrice = [|1000;2000;3000;4000|]
let variantComparePrice = [|2000;4000;6000;8000|]
let storlek = [|"50x50";"50x60";"50x70";"50x80"|]
С этим вы можете затем использовать Array.zip3
, чтобы получить единый массив со всеми данными (по одному элементу в строке).
let data = Array.zip3 variantPrice variantComparePrice storlek
Теперь вы можете использовать Array.map
для форматирования отдельных строк. Следующее мое предположение основано на вашем примере:
let lines = data |> Array.map (fun (vp, vcp, s) ->
sprintf "|%s| | |%d|%d|%s" handle vp vcp s)
Это массив строк, представленных в виде строк. Наконец, вы можете добавить заголовок к строкам и записать это в файл:
let header = "|handle|title|body|variantPrice|variantComparePrice|storlek|"
System.IO.File.WriteAllLines("c:/temp/test.csv",
Array.append [| header |] lines, Encoding.UTF8)