Звучит так, будто вы ищете способ преобразовать матрицу электронных таблиц в набор команд SQL, которые загружают таблицу базы данных.
Если это так, это больше вопрос анализа ввода, чем вопрос базы данных.
Общий подход будет следующим:
for each row
for each column
issue an INSERT statement using the row, column and intersection cell
Вот программа на Perl, которая сделает это, например, с помощью первой вкладки предоставленной вами электронной таблицы (после экспорта в CSV):
#!/usr/bin/perl
# read in the header line and trim off whitespce
$header = <STDIN>;
$header =~ s/^\s+|\s+$//g;
# make the header line into an array of 'width' values
@widths = split(/,/, $header);
# loop through the remaining (data) rows
while ($data = <STDIN>) {
# trim whitespace
$data =~ s/^\s+|\s+$//g;
# split the row into data elements, and use the 1st one as the 'length'
@prices = split(/,/, $data);
$length = $prices[0];
# loop through the remaining data cells
for ($i = 1; $i < 23; $i++) {
# print out an appropriate INSERT statement
printf(STDOUT "INSERT INTO curtain_price_table (group, width, length, price) VALUES (31, %d, %d, %d);\n", $widths[$i], $length, $prices[$i] . "\n");
}
}
Perl не единственный вариант здесь; любой язык сценариев может выполнить эту задачу довольно легко. И, возможно, вам придется адаптировать это, чтобы сделать его универсальным решением для ваших различных входных файлов и таблиц базы данных. Но это должно предоставить вам достаточно информации, чтобы удовлетворить ваши потребности.