diff --git a/tests/Makefile.am b/tests/Makefile.am
index bd2f97770c4725893dce5cc7da18322383c67e3b..95bf5b5d137359eb0d6b43c3ccc64918cbc31161 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -800,6 +800,7 @@ EXTRA_DIST = \
 	bvar_a_la_sims/bvar_sample.m \
 	dates/fsdat_simul.m \
 	dates/data_uav.xls \
+	dates/data_uav.xlsx \
 	external_function/extFunDeriv.m \
 	external_function/extFunNoDerivs.m \
 	external_function/extFunWithFirstAndSecondDerivs.m \
@@ -809,6 +810,7 @@ EXTRA_DIST = \
 	filter_step_ahead/trend_cycle_decomposition_data.m \
 	steady_state/walsh1_old_ss_steadystate.m \
 	data/test.xls \
+	data/test.xlsx \
 	gsa/morris/nk_est_data.m \
 	analytic_derivatives/fsdat_simul.m \
 	fs2000/fsdat_simul.m \
@@ -837,6 +839,7 @@ EXTRA_DIST = \
 	recursive/data_ca1.m \
 	recursive/data_ca1_csv.csv \
 	recursive/data_ca1_xls.xls \
+	recursive/data_ca1_xls.xlsx \
 	kalman_filter_smoother/fsdat_simul.m \
 	kalman/lik_init/fs2000_common.inc \
 	kalman/lik_init/fs2000_ns_common.inc \
diff --git a/tests/data/mod1a.mod b/tests/data/mod1a.mod
index 277150373893a16f5b197d524889b1f659e3a1ca..f475bc52c0b45f3fdaf9dfe5ac01021c3dab41ab 100644
--- a/tests/data/mod1a.mod
+++ b/tests/data/mod1a.mod
@@ -20,4 +20,8 @@ end;
 
 varobs dx dy;
 check;
+if isoctave || ~matlab_ver_less_than('7.14') % xlsread is able to read XLSX without Excel installed since R2012a
+estimation(datafile='test.xlsx',nobs=1000,mh_replic=2000,mh_jscale=1.3);
+else
 estimation(datafile='test.xls',nobs=1000,mh_replic=2000,mh_jscale=1.3);
+end
diff --git a/tests/data/test.xlsx b/tests/data/test.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..f9c5533decfd321cc0a9441693a5feba9ccd715a
Binary files /dev/null and b/tests/data/test.xlsx differ
diff --git a/tests/dates/data_uav.xlsx b/tests/dates/data_uav.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..14951ca19e303043f307b8c769859ee9c2938c10
Binary files /dev/null and b/tests/dates/data_uav.xlsx differ
diff --git a/tests/dates/dseries_interact.mod b/tests/dates/dseries_interact.mod
index 21132901685bf0bd00a3bc93f38aa915780dc583..50cc5b51db996955c96ce6b302c4a34bcabf704d 100644
--- a/tests/dates/dseries_interact.mod
+++ b/tests/dates/dseries_interact.mod
@@ -41,9 +41,17 @@ varobs log_nn;
 
 %reading Excel sheet from column A on creates quarterly dseries starting in
 %1950
-estimation(first_obs=2,datafile=data_uav, xls_sheet=Tabelle1, xls_range=a1:b54, mh_replic=2, mh_nblocks=1, mh_jscale=1.1, mh_drop=0.8, plot_priors=0, smoother) log_nn nn hh ;
+if isoctave || ~matlab_ver_less_than('7.14') % xlsread is able to read XLSX without Excel installed since R2012a
+estimation(first_obs=2,datafile='data_uav.xlsx', xls_sheet=Tabelle1, xls_range=a1:b54, mh_replic=2, mh_nblocks=1, mh_jscale=1.1, mh_drop=0.8, plot_priors=0, smoother) log_nn nn hh ;
+else
+estimation(first_obs=2,datafile='data_uav.xls', xls_sheet=Tabelle1, xls_range=a1:b54, mh_replic=2, mh_nblocks=1, mh_jscale=1.1, mh_drop=0.8, plot_priors=0, smoother) log_nn nn hh ;
+end
 shock_decomposition( parameter_set=posterior_median ) nn hh;
 
 %reading Excel sheet from column B on creates annual dseries starting with 1
-estimation(first_obs=2,datafile=data_uav, xls_sheet=Tabelle1, xls_range=b1:b54, mh_replic=2, mh_nblocks=1, mh_jscale=1.1, mh_drop=0.8, plot_priors=0, smoother) log_nn nn hh ;
+if isoctave || ~matlab_ver_less_than('7.14') % xlsread is able to read XLSX without Excel installed since R2012a
+estimation(first_obs=2,datafile='data_uav.xlsx', xls_sheet=Tabelle1, xls_range=b1:b54, mh_replic=2, mh_nblocks=1, mh_jscale=1.1, mh_drop=0.8, plot_priors=0, smoother) log_nn nn hh ;
+else
+estimation(first_obs=2,datafile='data_uav.xls', xls_sheet=Tabelle1, xls_range=b1:b54, mh_replic=2, mh_nblocks=1, mh_jscale=1.1, mh_drop=0.8, plot_priors=0, smoother) log_nn nn hh ;
+end
 shock_decomposition( parameter_set=posterior_median ) nn hh;
diff --git a/tests/recursive/data_ca1_xls.xlsx b/tests/recursive/data_ca1_xls.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..62ce5a51f8688ee68d7894f7475d5714045e7b62
Binary files /dev/null and b/tests/recursive/data_ca1_xls.xlsx differ
diff --git a/tests/recursive/ls2003_bayesian_xls.mod b/tests/recursive/ls2003_bayesian_xls.mod
index 967c3321b527c930f6394e24bc34fb85bd491650..0fb926123c2db246f786b8a86204e150fb1967f8 100644
--- a/tests/recursive/ls2003_bayesian_xls.mod
+++ b/tests/recursive/ls2003_bayesian_xls.mod
@@ -61,4 +61,8 @@ stderr e_ys,inv_gamma_pdf,1.2533,0.6551;
 stderr e_pies,inv_gamma_pdf,1.88,0.9827;
 end;
 
-estimation(datafile=data_ca1_xls,first_obs=8,nobs=[76 79],mh_nblocks=1,prefilter=1,mh_jscale=0.5,mh_replic=2000,forecast=8) y_obs R_obs pie_obs dq de;
+if isoctave || ~matlab_ver_less_than('7.14') % xlsread is able to read XLSX without Excel installed since R2012a
+estimation(datafile='data_ca1_xls.xlsx',first_obs=8,nobs=[76 79],mh_nblocks=1,prefilter=1,mh_jscale=0.5,mh_replic=2000,forecast=8) y_obs R_obs pie_obs dq de;
+else
+estimation(datafile='data_ca1_xls.xls',first_obs=8,nobs=[76 79],mh_nblocks=1,prefilter=1,mh_jscale=0.5,mh_replic=2000,forecast=8) y_obs R_obs pie_obs dq de;
+end