У меня проблемы с моим кодом. Я хотел бы преобразовать таблицу HTML в файл CSV (Libre Office Calc, мне все равно, если это csv, xls или xlsx; все, что мне нужно, это то, что он работает на Linux Server). Я нашел этот код в Интернете, и он отлично работает (просто скрипт, который я немного подправил):
<span onclick="exportData('total-concours-table', 'Total_Concours_<?php echo date('dmy-Hi'); ?>')" id="print-total-concours" style="float: right ; поле справа: 10 пикселей; размер шрифта: 50 пикселей"><i class="fa-solid fa-print"></i></span>
<table id="total-concours-table">
<thead>
<tr>
<th>Тип досье</th>
<th>Всего номеров (<?= $totalConcours ?>)</th>
<th>Процент</th>
</tr>
</thead>
<тело>
<tr>
<td>По курсу</td>
<td><?= $totalConcoursEncours ?></td>
<td><?= $prcCEncours ?></td>
</tr>
<tr>
<td>Закрытие</td>
<td><?= $totalConcoursCloture ?></td>
<td><?= $prcCCloture ?></td>
</tr>
<tr>
<td>По курсу</td>
<td><?= $totalConcoursAnnule ?></td>
<td><?= $prcCANnule ?></td>
</tr>
</tbody>
</таблица>
<скрипт>
функция exportData(tablename, nomfichier){
/* Получить данные HTML, используя элемент по идентификатору */
пусть таблица = документ.getElementById (имя таблицы);
/* Объявление переменной массива */
пусть строки = [];
//перебираем строки таблицы
for(var i=0; строка = table.rows[i]; i++){
//доступ к строкам будет осуществляться с помощью переменной "row", назначенной в цикле for
// Получить значение каждой ячейки/столбца из строки
столбец1 = строка.ячейки[0].innerText;
столбец2 = строка.ячейки[1].внутреннийтекст;
столбец3 = строка.ячейки[2].innerText;
/* добавляем новые записи в массив */
строки.push(
[
столбец1,
столбец2,
столбец3
]
);
}
csvContent = "данные: текст/csv; набор символов = utf-8,";
/* добавьте разделитель столбцов в виде запятой (,), а каждую строку разделите символом новой строки (\n) */
rows.forEach (функция (rowArray) {
строка = rowArray.join ("",");
csvContent += строка + "\r\n";
});
/* создаем скрытый DOM-узел <a> и устанавливаем его атрибут загрузки */
var encodedUri = encodeURI (csvContent);
ссылка var = document.createElement("a");
link.setAttribute("href", encodedUri);
nomfinal = nomfichier + '.csv';
link.setAttribute("скачать", номинал);
document.body.appendChild (ссылка);
/* загрузите файл данных с именем "Stock_Price_Report.csv" */
ссылка.щелчок();
}
</скрипт>
Однако, когда я загружаю его, для ячеек нет CSS или дизайна. Мне не нужен эффект размытия; все, что мне нужно, это фон для текста (в файле csv).
Вы можете мне помочь?
Во-вторых, я хотел бы создать диаграмму (круговую или/и гистограмму) рядом с массивом csv; У Вас есть какие-то предложения?