Let m, n, s, k be four integers such that 3 ≤ s ≤ n, 3 ≤ k ≤ m and ms = nk. Set d = gcd(s, k). In this paper we show how one can construct a Heffter array H(m, n; s, k) starting from a square Heffter array H(nk/d; d) whose elements belong to d consecutive diagonals. As an example of application of this method, we prove that there exists an integer H(m, n; s, k) in each of the following cases: (i) d ≡ 0 (mod 4); (ii) 5 ≤ d ≡ 1 (mod 4) and nk ≡ 3 (mod 4); (iii) d ≡ 2 (mod 4) and nk ≡ 0 (mod 4); (iv) d ≡ 3 (mod 4) and nk ≡ 0, 3 (mod 4). The same method can be applied also for signed magic arrays SMA(m, n; s, k) and for magic rectangles MR(m, n; s, k). In fact, we prove that there exists an SMA(m, n; s, k) when d ≥ 2, and there exists an MR(m, n; s, k) when either d ≥ 2 is even or d ≥ 3 and nk are odd. We also provide constructions of integer Heffter arrays and signed magic arrays when k is odd and s ≡ 0 (mod 4).