if you can provide the colors as a list like color1 & color2 & color3 & ... you could do it like this:
\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
\usepackage{arrayjobx}
\usepackage{trimspaces}
\makeatletter
\def\trimspace#1{\trim@spaces@in{#1}}
\makeatother
\newarray\temp
\readarray{temp}{yellow&blue&red&red&yellow&blue&red&blue&green&yellow&green&green&yellow&red&blue&yellow&
red&red&blue&green&yellow&yellow&yellow&green&green&red&green&green&green&red&green&red&red&blue&yellow&red&
red&green&yellow&blue&blue&blue&blue&red&red&blue&blue&green&red&red&red&blue&red&blue&red&green&red&red&
green&red&yellow&green&green&yellow&blue&green&red&green&green&green&green&blue&red&yellow&yellow&yellow&
blue&yellow&yellow&green&blue&yellow&blue&yellow&blue&yellow&green&red&blue&yellow&blue&blue&red&yellow&
yellow&green&red&green&green&blue&blue&yellow&green&green&green&red&yellow&blue&red&yellow}
\dataheight=10
\begin{document}
\begin{tikzpicture}
\foreach \x in {1,...,10}
{ \foreach \y in {1,...,10}
{ \pgfmathtruncatemacro{\xt}{\x}
\pgfmathtruncatemacro{\yt}{\y}
\checktemp(\xt,\yt)
\trimspace\cachedata
\node[inner sep=0.3pt, fill=\cachedata, minimum width=0.9cm, minimum height=0.9cm] at (\xt,\yt) {};
}
}
\end{tikzpicture}
\end{document}

Edit 1: As suggested by Jake, here's a variant where your color data would be numbered, again separated by &:
\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
\usepackage{arrayjobx}
\usepackage{trimspaces}
\makeatletter
\def\trimspace#1{\trim@spaces@in{#1}}
\makeatother
%\newarray\temp
%\readarray{temp}{yellow&blue&red&red&yellow&blue&red&blue&green&yellow&green&green&yellow&red&blue&yellow&
%red&red&blue&green&yellow&yellow&yellow&green&green&red&green&green&green&red&green&red&red&blue&yellow&red&
%red&green&yellow&blue&blue&blue&blue&red&red&blue&blue&green&red&red&red&blue&red&blue&red&green&red&red&
%green&red&yellow&green&green&yellow&blue&green&red&green&green&green&green&blue&red&yellow&yellow&yellow&
%blue&yellow&yellow&green&blue&yellow&blue&yellow&blue&yellow&green&red&blue&yellow&blue&blue&red&yellow&
%yellow&green&red&green&green&blue&blue&yellow&green&green&green&red&yellow&blue&red&yellow}
%\dataheight=10
\newarray\numbers
\readarray{numbers}{2 & 6 & 2 & 4 & 5 & 6 & 1 & 5 & 6 & 3 & 3 & 2 & 6 & 4 & 5 & 4 & 6 & 4 & 5 & 6 & 5 & 1 & 3 & 6 & 5 & 6 & 4 & 6 & 1 & 6 & 5 & 4 & 4 & 4 & 3 & 2 & 3 & 3 & 2 & 6 & 2 & 4 & 5 & 2 & 4 & 1 & 3 & 5 & 1 & 4 & 1 & 1 & 5 & 4 & 2 & 6 & 2 & 2 & 1 & 2 & 2 & 1 & 5 & 1 & 6 & 4 & 4 & 2 & 1 & 3 & 4 & 3 & 3 & 5 & 1 & 1 & 3 & 2 & 5 & 6 & 2 & 3 & 2 & 4 & 6 & 2 & 1 & 1 & 4 & 6 & 1 & 1 & 1 & 1 & 3 & 4 & 3 & 6 & 5 & 5}
\dataheight=10
\begin{document}
%\begin{tikzpicture}
% \foreach \x in {1,...,10}
% { \foreach \y in {1,...,10}
% { \pgfmathtruncatemacro{\xt}{\x}
% \pgfmathtruncatemacro{\yt}{\y}
% \checktemp(\xt,\yt)
% \trimspace\cachedata
% \node[inner sep=0pt, fill=\cachedata, minimum width=0.9cm, minimum height=0.9cm] at (\xt,\yt) {};
% }
% }
%\end{tikzpicture}
\begin{tikzpicture}
[ 1/.style={fill=red!50!gray},
2/.style={fill=yellow!50!gray},
3/.style={fill=blue!50!gray},
4/.style={fill=orange!50!gray},
5/.style={fill=violet!50!gray},
6/.style={fill=green!50!gray}
]
\foreach \x in {1,...,10}
{ \foreach \y in {1,...,10}
{ \pgfmathtruncatemacro{\xt}{\x}
\pgfmathtruncatemacro{\yt}{\y}
\checknumbers(\xt,\yt)
\trimspace\cachedata
\node[inner sep=0pt, \cachedata, minimum width=0.95cm, minimum height=0.95cm,rounded corners=0.1cm] at (\xt,\yt) {};
}
}
\end{tikzpicture}
\end{document}
