Macros are not too much help here, i. e., type \whatever{a}{b} seems not too much advantage over type directly a & b \\\hline.
One more helper manual approach is use web application to write te table code (e.g: https://www.tablesgenerator.com/) Or use a LaTeX editor with a table wizard (e.g.: Gummi or LyX)
But for a significant help with automatic generation of tables, there are other approaches. One pure LaTeX solution is Formatting complex table from CSV using datatool.
The csv and excel files file could be also read in R as a data frame or matrix and exported in several ways to beautiful LaTeX tables and automatically include in a LaTeX file. I use this a lot. To show only some of the options, this is a example done in Rmarkdown produce a LaTeX and PDF version with different R packages to make four styles of tables from the same data (but yes, the better is indeed that with only the 3 booktabs rules):

---
title: A \LaTeX\ document with tables made with R in Rmarkdown.
classoption: twocolumn, a5paper
output:
pdf_document:
keep_tex: yes
geometry: columnsep=3em
---
```{r rawdata,echo=F}
# for this small table I will make directly the data frame
# instead of load a csv file.
df <- data.frame(
Contry=c("Australia","Germany","Poland","India"),
Counted=c(690,1000,240,5397))
```
Formal table made with `xtable`:
```{r test0,echo=F,results='asis'}
library(xtable)
print(xtable(df),comment=F,include.rownames=F,booktabs=T)
```
With some elegant row colors, now with `knitr` y `kableExtra`:
```{r test1,echo=F}
library(knitr)
library(kableExtra)
kable(df, booktabs=T) %>%
kable_styling(latex_options = c("striped", "hold_position"))
```
\newpage
Criminal data jailed. Made with a `huxtable`:
```{r test3,message=F,echo=F}
library(huxtable)
ht <- as_hux(df, add_colnames = TRUE)
number_format(ht) <- 0 # decimal places
set_all_borders(ht, 1:5, 1:2, 1.5)
```
Criminal data too, now crucified:
```{r test4,message=F,echo=F}
theme_basic(ht)
```
tabuat https://tex.stackexchange.com/a/449240/250119 – user202729 Nov 06 '21 at 17:28