Import csv file data into mysql database using php

Импорт файла клиента для замещения на сервере базы данных MySQL

Можно импортировать данные от клиента (локального компьютера) на удаленный сервер базы данных MySQL, с помощью оператора LOAD DATA INFILE.

При использовании опции LOCAL в LOAD DATA INFILE клиентская программа считывает файл на стороне клиента и отправляет его на сервер MySQL. Файл будет загружен во временную папку базы данных сервера операционной системы, например, C: Windows Temp для ОС Windows или /TMP для Linux.

Эта папка не настраивается и не задается MySQL.

Давайте рассмотрим следующий пример:

LOAD DATA LOCAL INFILE  'c:/tmp/discounts.csv'
INTO TABLE discounts
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY 'n'
IGNORE 1 ROWS;

Разница заключается только в опции LOCAL оператора. Если вы загружаете большой CSV файл, вы увидите, что с опцией LOCAL загрузка осуществляется немного медленнее, потому что требуется определенное время, чтобы передать файл серверу базы данных.

Учетная запись пользователя, под которым мы подключается к серверу MySQL для импорта данных, может не иметь привилегию FILE, если используется опция LOCAL.

При импорте файла от клиента на удаленный сервер базы данных с помощью LOAD DATA LOCAL могут возникнуть некоторые проблемы с безопасностью, о которых вы должны знать, чтобы избежать потенциальных рисков.

Импорт базы данных MySQL: что и зачем?

Импорт базы данных MySQL — это операция, при которой происходит наполнение базы информацией. При этом источником данных является файл дампа — слепок другой базы, автоматически созданный при операции экспорта, или специально подготовленный SQL скрипт.

Импорт, как и экспорт БД MySQL, бывает двух видов информации, хранящейся в базе:

  1. структуры базы, её таблиц и хранимых в них данных (в простонародье именуемых дампом БД);
  2. просто данных, хранящихся в таблице либо собранных с помощью SELECT запросов.

В данной статье будут рассмотрены оба варианта.

Для восстановления из дампа MySQL базы данных с её структурой и всей хранимой информацией, как уже было сказано, нужен файл дампа БД, который представляет из себя текстовый файл с любым расширением (предварительно может быть запакован в архив для уменьшения размера), содержащий SQL команды для создания самой базы и таблиц, а также наполнения их информацией.

Следовательно, для того, чтобы восстановить MySQL базу из дампа, требуется выполнение содержащихся в файле команд.

Для обычного восстановления данных такие сложности не обязательны. Достаточно иметь в наличии тестовый файлик, информация в котором будет структурирована тем же образом, что и в таблице БД: количество колонок с информацией соответствует числу атрибутов записи таблицы.

Для этих целей подойдёт и обычный txt файл, данные в котором будут разделены, либо файлы, создаваемые в специальных табличных редакторах (Microsoft Office Excel, OpenOffice и т.д.), имеющих отличное расширение: xls, csv, odt и др.

Данные форматы даже предпочтительнее, т.к. при их создании ограничители данных добавляются редакторами автоматически, и нет нужды вносить их отдельно, как в случае обычного текстового файла.

Импорт CSV-файла через PHPMyAdmin

Первый и самый простой способ — воспользоваться готовым инструментом. Например, функция импорта данных из csv-файла в базу есть в PHPMyAdmin-е.

Выбираем нужную таблицу, на вкладке “Структура” внизу нажимаем на “Вставить текстовые файлы в таблицу“. Указаваем настройки импорта.

Внимание! Если после нажатия “Выполнить” у вас вылезли ошибки типа

ldi_check.php: Missing parameter: dbldi_check.php: Missing parameter: table

это может объясняться разными причинами.

1. Возможно, файл, предназначенный для импорта, слишком большой. В старых версиях PHPMyAdmin (младше 2.7.0) был баг с импортом больших файлов. Так что, возможно, выходом из ситуации будет обновление PHPMyAdmin-а.

(Ссылка на

пункт 1.16 FAQ

) Начиная с версии 2.7.0 функция импорта была переписана и проблем с импортом больших файлов не должно возникать.

Следующее, что можно проверить (или спросить у провайдера), – это значения параметров upload_max_filesize, memory_limit и post_max_size в конфигурационном файле php.ini. Эти три настройки ограничивают максимальный размер данных, которые могут быть переданы и обработаны PHP.

Там же, в документации, приводится описание нескольких “обходных путей”, которые подойдут, если вы импортируете не scv-файл, а заливаете дамп базы, а ваш провайдер не хочет менять настройки:

а) Проверьте настройку $cfg. Она позволяет настроить загрузку файла на сервер через scp, ftp или другим методом. PhpMyAdmin может работать с файлами, расположенными во временном каталоге. Более подробную информацию читайте в разделе Настройки документации.

б) Используйте сторонние утилиты (например, BigDump) для того, чтобы разбить файл перед загрузкой.

в) Если у вас есть прямой shell доступ, используйте MySQL для импорта файлов напрямую. Вы можете это сделать с помощью команды “source”:

source filename.sql2. Если файл небольшой, но эти ошибки все же появляются, то вам может помочь вот эта тема на форуме.

Conclusion

You now have 5 methods to export your MySQL table to CSV in your arsenal. If you are comfortable with writing queries using the command-line or mysqldump utility tool will prove to be the simplest way. However, if you are not confident with your querying skills, MySQL Workbench and phpMyAdmin will be your best bet. Extracting complex data from a diverse set of data sources such as MySQL can be a challenging task and this is where Hevo saves the day!

Hevo offers a faster way to move data from 100+ data sources such as SaaS applications or Databases such as MySQL into your Data Warehouse to be visualized in a BI tool. Hevo is fully automated and hence does not require you to code.

Want to take Hevo for a spin? Sign Up for a 14-day free trial and experience the feature-rich Hevo suite first hand. You can also have a look at the unbeatable pricing that will help you choose the right plan for your business needs.

Introduction

Do you want to export tables from your MySQL database to a CSV format? You have landed at just the right post. We give you an easy, stepwise guide for 5 different methods to do just that.MySQL is the most popular open-source relational database. It stores data in the form of tables. It is offered under two different editions:

  • The open-source MySQL community server 
  • The proprietary Enterprise server

However, the raw format of MySQL tables is supported by a limited number of applications. Therefore, it is often beneficial to convert MySQL data into CSV format.

In this article we will look into the following:

Pre-requisites

  • Basic knowledge of MySQL
  • Using MySQL shell
  • Using a terminal/command line
  • Write permission for the intended output file
  • Read permission for the input MySQL table
  • Pre-configured phpMyAdmin account (optional)

Импорт CSV файла с помощью MySQL Workbench

MySQL Workbench предоставляет инструмент для импорта данных в таблицу БД. Он позволяет редактировать данные перед внесением изменений.

Ниже приведены этапы импорта данных в таблицу БД:

Откройте таблицу, в которую будут загружаться данные:

Нажмите кнопку Import, выберите CSV файл и нажмите кнопку Open:

Просмотрите данные, нажмите кнопку Apply:

В MySQL Workbench появится диалоговое окно «Apply SQL Script to Database», нажмите кнопку Apply, чтобы добавить данные в таблицу БД.

Мы рассказали вам, как импортировать CSV в таблицу MySQL с помощью LOAD DATA LOCAL, а также с использованием MySQL Workbench.

С помощью этих методов можно загружать данные и из других файлов текстовых форматов, таких, например, как текстовый файл с разделителями табуляции.

Вадим Дворниковавтор-переводчик статьи «Import CSV File Into MySQL Table»

HTML Form to Import CSV File

This HTML code is used to show a form with the CSV file import option. After submitting the file, PHP code parses the CSV data and prepares INSERT query to load the data into the database.

After importing the data into the database the added rows are listed in the browser. When the user uploads the CSV source, the file type is restricted by specifying .csv using the accept attribute.

After importing the complete data from the CSV file it displays the stored data in a grid view. The code to retrieve the stored data and the grid view is as follows.

<h2>Import CSV file into Mysql using PHP</h2>

    <div id="response"
        class="<?php if(!empty($type)) { echo $type . " display-block"; } ?>">
        <?php if(!empty($message)) { echo $message; } ?>
        </div>
    <div class="outer-scontainer">
        <div class="row">

            <form class="form-horizontal" action="" method="post"
                name="frmCSVImport" id="frmCSVImport"
                enctype="multipart/form-data">
                <div class="input-row">
                    <label class="col-md-4 control-label">Choose CSV
                        File</label> <input type="file" name="file"
                        id="file" accept=".csv">
                    <button type="submit" id="submit" name="import"
                        class="btn-submit">Import</button>
                    <br />

                </div>

            </form>

        </div>
               <?php
            $sqlSelect = "SELECT * FROM users";
            $result = $db->select($sqlSelect);
            if (! empty($result)) {
                ?>
            <table id='userTable'>
            <thead>
                <tr>
                    <th>User ID</th>
                    <th>User Name</th>
                    <th>First Name</th>
                    <th>Last Name</th>

                </tr>
            </thead>
<?php
                
                foreach ($result as $row) {
                    ?>
                    
                <tbody>
                <tr>
                    <td><?php  echo $row; ?></td>
                    <td><?php  echo $row; ?></td>
                    <td><?php  echo $row; ?></td>
                    <td><?php  echo $row; ?></td>
                </tr>
                    <?php
                }
                ?>
                </tbody>
        </table>
        <?php } ?>
    </div>

The jQuery validation for checking the uploaded file type is done by using regex. It checks if the uploaded file is with the .csv extension.

If so, it will allow further default action to submit the file binaries to the PHP. Otherwise, it stops form submit and displays the error to the browser.

<script type="text/javascript">
$(document).ready(function() {
    $("#frmCSVImport").on("submit", function () {

	    $("#response").attr("class", "");
        $("#response").html("");
        var fileType = ".csv";
        var regex = new RegExp("()+(" + fileType + ")$");
        if (!regex.test($("#file").val().toLowerCase())) {
        	    $("#response").addClass("error");
        	    $("#response").addClass("display-block");
            $("#response").html("Invalid File. Upload : <b>" + fileType + "</b> Files.");
            return false;
        }
        return true;
    });
});
</script>

Почему нужно использовать этот мастер?Why would I use this wizard?

Этот мастер создан на основе интеллектуальной платформы Program Synthesis using Examples (PROSE) и позволяет улучшить текущий процесс импорта.This wizard was created to improve the current import experience leveraging an intelligent framework known as Program Synthesis using Examples (PROSE). Для пользователей, которые не обладают глубокими знаниями в предметной области, импорт данных часто представляет собой трудную и утомительную задачу, чреватую ошибками.For a user without specialized domain knowledge, importing data can often be a complex, error prone, and tedious task. При использовании мастера достаточно указать входной файл и уникальное имя таблицы, и платформа PROSE сделает все остальное.This wizard streamlines the import process as simple as selecting an input file and unique table name, and the PROSE framework handles the rest.

PROSE анализирует шаблоны данных во входном файле и определяет имена столбцов, типы, разделители и т. д.PROSE analyzes data patterns in your input file to infer column names, types, delimiters, and more. Платформа запоминает структуру файла и выполняет все действия по обработке данных.This framework learns the structure of the file and does all of the hard work so users don’t have to.

Подробные сведения о том, как улучшен пользовательский интерфейс мастера импорта неструктурированных файлов, см. в этом видео.To further understand the user experience improvement of the Import Flat File Wizard, check out this video:

Чтобы установить пакет

Предпосылки: , ,

Как импортировать файлы csv в таблицы sql

Пример файла: файл данных CSV

Шаги:

  1. Необходимо создать таблицу для .

  2. Необходимо создать столбцы, связанные с файлом CSV.

    SQL-запрос:

  3. Необходимо подключить базу данных mysql в терминале.

  4. Введите эту команду, чтобы импортировать данные CSV в таблицы mysql.

  5. Найдите данные индекса внешней торговли в базе данных sqld:

Если вы используете компьютер под управлением Windows с загруженной электронной таблицей Excel, новый плагин mySql для Excel является феноменальным. Сотрудники Oracle действительно хорошо поработали над этим программным обеспечением. Вы можете установить соединение с базой данных прямо из Excel. Этот плагин проанализирует ваши данные и настроит для вас таблицы в формате, соответствующем данным. У меня было несколько огромных файлов csv данных для преобразования. Этот инструмент сэкономил много времени.

http://dev.mysql.com/downloads/windows/excel/

Вы можете делать обновления из Excel, которые будут внесены в базу данных онлайн. Это очень хорошо работало с файлами mySql, созданными на ультра недорогом общем хостинге GoDaddy

(Обратите внимание, когда вы создаете таблицу в GoDaddy, вы должны выбрать некоторые нестандартные настройки, чтобы разрешить доступ к базе данных вне сайта …)

С помощью этого плагина у вас есть чистая интерактивность между таблицей XL и онлайн-хранилищем данных mySql.

Я использую рабочую среду mysql для выполнения той же работы.

  1. создать новую схему
  2. открыть вновь созданную схему
  3. щелкните правой кнопкой мыши «Таблицы» и выберите «Мастер импорта табличных данных».
  4. укажите путь к CSV-файлу и имя таблицы и, наконец, настройте тип столбца, потому что мастер устанавливает тип столбца по умолчанию на основе их значений.

Примечание: посмотрите файл журнала mysql workbench на наличие ошибок, используя «tail -f &lsqb;mysqlworkbenchpath&rsqb; /log/wb*.log»

  • Большое спасибо за ваш ответ — будучи новичком в MySQL, я не знал об этом — он помог мне с CSV. Теперь мне также нужно импортировать 10 таблиц из Access. Как вы думаете, самый простой способ — экспортировать эти таблицы в Excel, из Excel в CSV, а затем использовать эти шаги?
  • Я обнаружил, что этот метод не импортирует все строки :( Из 5 342 строк он импортировал для меня только 2485 строк. Почему это так?
  • Привет, Наоми, если вы проверите журнал mysqlworkbench, он покажет вам, почему он прекратил импорт данных. У вас могут быть нулевые значения или тип несоответствия в вашем DB и CSV файле. Но я очень рекомендую последовать ответу Хуана (сразу после меня). Его решение лучше и чище, чем у меня.

Вот пример снимка экрана с файлом Excel:

Сохраните как и выберите .csv.

И у вас будет, как показано ниже, снимок экрана с данными .csv, если вы откроете его с помощью notepad ++ или любого другого блокнота.

Убедитесь, что вы удалили заголовок и выровняли столбцы в .csv, как в таблице mysql. Замените имя_папки именем своей папки

Если большие данные, вы можете взять кофе и загрузить его !.

Это все, что тебе нужно.

Если вы используете Intellij https://www.jetbrains.com/datagrip/features/importexport.html

PHP-запрос для импорта файла csv в базу данных mysql

** Образец данных файла CSV **

Я сделал это просто с помощью phpmyadmin. Я выполнил шаги @Farhan, но все данные были выведены в один столбец. Как я сделал:

  1. Создал файл CSV и удалил строку заголовка с именами столбцов. Сохранены только данные.
  2. Я создал таблицу с именами столбцов, соответствующими столбцам csv.
  3. Не забудьте присвоить соответствующие типы каждому столбцу.
  4. Я просто выбрал импорт и перешел на вкладку импорта.
  5. При просмотре я выбрал файл CSV и сохранил все параметры как есть.
  6. К моему удивлению, все данные были успешно импортированы в соответствующие столбцы.

Create Database Table

To store the member’s data, a table needs to be created in the database. The following SQL creates a table with some basic fields in the MySQL database.

CREATE TABLE `members` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
 `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
 `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
 `created` datetime NOT NULL,
 `modified` datetime NOT NULL,
 `status` enum('Active','Inactive') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Active',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CSV File Upload (index.php)

Initially, the members data is listed with CSV file import option.

  • Existing members data are fetched from the database and listed on the webpage.
  • An Import button is placed at the top of the list.
  • By clicking the Import button, an HTML form is appeared to select and upload a CSV file.
  • On submission, the form is submitted to the file for importing the CSV data to the database.
  • formToggle() – It is a JavaScript function that helps to Show/Hide the CSV upload form. This function is triggered on click event of the Import button.

If the form is already submitted,

The status message is retrieved from the URL and the import status is displayed on the web page.

<?php
// Load the database configuration file
include_once 'dbConfig.php';

// Get status message
if(!empty($_GET'status'])){
    switch($_GET'status']){
        case 'succ'$statusType = 'alert-success';
            $statusMsg = 'Members data has been imported successfully.';
            break;
        case 'err'$statusType = 'alert-danger';
            $statusMsg = 'Some problem occurred, please try again.';
            break;
        case 'invalid_file'$statusType = 'alert-danger';
            $statusMsg = 'Please upload a valid CSV file.';
            break;
        default:
            $statusType = '';
            $statusMsg = '';
    }
}
?>


<?php if(!empty($statusMsg)){ ?>
<div class="col-xs-12">
    <div class="alert <?php echo $statusType; ?>"><?php echo $statusMsg; ?></div>
</div>
<?php } ?>

<div class="row">
    
    <div class="col-md-12 head">
        <div class="float-right">
            <a href="javascript:void(0);" class="btn btn-success" onclick="formToggle('importFrm');"><i class="plus"></i> Import</a>
        </div>
    </div>
    
    <div class="col-md-12" id="importFrm" style="display: none;">
        <form action="importData.php" method="post" enctype="multipart/form-data">
            <input type="file" name="file" />
            <input type="submit" class="btn btn-primary" name="importSubmit" value="IMPORT">
        </form>
    </div>

     
    <table class="table table-striped table-bordered">
        <thead class="thead-dark">
            <tr>
                <th>#ID</th>
                <th>Name</th>
                <th>Email</th>
                <th>Phone</th>
                <th>Status</th>
            </tr>
        </thead>
        <tbody>
        <?php
        // Get member rows
        $result = $db->query("SELECT * FROM members ORDER BY id DESC");
        if($result->num_rows > ){
            while($row = $result->fetch_assoc()){
        ?>
            <tr>
                <td><?php echo $row'id']; ?></td>
                <td><?php echo $row'name']; ?></td>
                <td><?php echo $row'email']; ?></td>
                <td><?php echo $row'phone']; ?></td>
                <td><?php echo $row'status']; ?></td>
            </tr>
        <?php } }else{ ?>
            <tr><td colspan="5">No member(s) found...</td></tr>
        <?php } ?>
        </tbody>
    </table>
</div>

<!-- Show/hide CSV upload form -->
<script>
function formToggle(ID){
    var element = document.getElementById(ID);
    if(element.style.display === "none"){
        element.style.display = "block";
    }else{
        element.style.display = "none";
    }
}
</script>

The Bootstrap library is used to styling the Table, Form, and Buttons. So, include the Bootstrap 4 library file and custom stylesheet file (if any). If you don’t want to use Bootstrap structure, omit to include this library file.

<link rel="stylesheet" href="assets/bootstrap/bootstrap.min.css">


<link rel="stylesheet" href="assets/css/style.css">

Steps

Here’s how to import a CSV file using MySQL Workbench:

  1. Connect to your database.
  2. Right-click on the database and select Table Data Import Wizard.
  3. Select your CSV file.
  4. Select an existing table or enter a name for a new table.
  5. Configure the import settings (data types, line separator, etc).
  6. Finish the process.

Let’s look into these in more detail.

Our CSV file is a small file with some product data in it, just for demonstration purposes:

id,product_name,price
1,Couch,100
2,Chair,50
3,Table,40

I’ll try a larger CSV file at the end of this guide and measure the performance, as you’re probably importing a file with more than 3 rows.

First, open MySQL Workbench and connect to your database. Your window should look like this one below. These are from MySQL Workbench on macOS, but the Windows version looks very similar.

Right-click on the database you want to import data into and select Table Import Wizard. There’s no need to select a specific table from the Tables list.

You’ll see the Table Data Import wizard.

Select the CSV you want to import by clicking the Browse button.

Click Next. You’ll then see the Select Destination screen.

You can either select an existing table to import the data into or create a new table.

Creating a new table is selected by default, and the name is set to your filename. You can change this to whatever you want the table to be called, which might be needed if your table already exists. In this example, I’ll change the name from “data” to “import_data”, because I think data may be a reserved word.

There’s a checkbox you can select called “Drop table if exists” if you want to drop the table before creating it. This is helpful if you are importing the CSV file again and want to create the table from scratch.

In this example, the table is called “import_data”. We’ll use that, so click Next.

You’ll then see the Configure Import Settings page.

You can see the encoding, which in most cases you can leave as the default value.

The columns from the CSV file are shown. Each of them has a checkbox to the left, indicating whether or not you want to import that column into the table.

You can also see and change the data types for each column. These are determined from the data in the column, but if it’s not right, you can change it.

You can see a preview of the data at the bottom of the window.

You can click on the wrench icon to change some more settings, such as:

  • Line Separator
  • Enclose Strings In
  • Field Separator
  • null and NULL as SQL keyword

Once you’ve made any changes, if any, click Next.

You’ll then see the Import Data screen, which is essentially a confirmation screen.

Click Next.

The two steps shown will then be performed, and hopefully green ticks will appear next to them, indicating it was successful.

If it was successful, click Next to continue.

A summary page is shown, letting you know how many rows were imported.

Click Finish.

You can then check your results by selecting from your new table.

You can see the results in the output panel.

So, that’s how you can use the MySQL workbench import CSV process to import a CSV file.

Использование оператора BULK INSERT

Оператор BULK INSERT в SQL Server позволяет осуществлять импорт данных из файла в таблицу. В предложении WITH для данного оператора можно задавать множество опций, но нам нужны только две из них:

FIELDTERMINATOR

Указывает разделить для столбцов. По умолчанию, разделителем является символ табуляции (t). В CSV разделителем по умолчанию является запятая.

ROWTERMINATOR

Указывает разделитель для строк.

IF (OBJECT_ID(‘CSV_Export’) IS NOT NULL) DROP TABLE dbo.CSV_Export;CREATE TABLE CSV_Export ( DateReport VARCHAR(15), CountView INT, CountClicks INT, CTR FLOAT, RPM FLOAT, Profit FLOAT)BULK INSERT dbo.CSV_ExportFROM ‘D:Report.csv’WITH (fieldterminator = ‘ ‘, rowterminator = ‘n’);

В качестве разделителя в исходном CSV-файле используется знак табуляции (Tab). В CSV также можно использовать запятые, точки с запятой и другие символы в качестве разделителя столбцов. Главное указать символ в параметре FIELDTERMINATOR.

Выберите теперь все строки из таблицы CSV_Export с помощью оператора SELECT для проверки результата:

select top 100 * from CSV_Export;

На рисунке ниже показан результат:

Как правило, данные из CSV-файла нужно сохранять во временную таблицу, а затем из нее вставлять в основную, т.к. зачастую необходимо парсить даты, числа с плавающей запятой и другие форматы. Их можно спарсить в строку во временной таблице и привести к нужному формату в основной. Например, если мы изменим тип столбца DateReport на DATETIME, SQL Server выдаст следующую ошибку:

В следующем примере показано, как можно обойти эту ошибку и получить дату:

— Создаем временную таблицу и импортируем данные из CSVIF (OBJECT_ID(‘tempdb..#csv_temp’) IS NOT NULL) DROP TABLE #csv_temp;CREATE TABLE #csv_temp ( DateReport VARCHAR(15), CountView INT, CountClicks INT, CTR FLOAT, RPM FLOAT, Profit FLOAT);BULK INSERT #csv_tempFROM ‘D:Report.csv’WITH (fieldterminator = ‘ ‘, rowterminator = ‘n’);– Создаем основную таблицуIF (OBJECT_ID(‘CSV_Export’) IS NOT NULL) DROP TABLE dbo.CSV_Export;CREATE TABLE CSV_Export ( DateReport DATETIME, CountView INT, CountClicks INT, CTR FLOAT, RPM FLOAT, Profit FLOAT)– Заполняем данными из временной таблицыINSERT INTO CSV_ExportSELECT CONVERT(datetime, DateReport, 105), — Строку в дату CountView, CountClicks, CTR, RPM, ProfitFROM #csv_temp;– Проверитьselect top 100 * from CSV_Export;

Теперь в основной таблице столбец DateReport будет храниться в формате даты:

Обзор кейса

Карло, ИТ консультант, работал над сложной, но довольно типичной задачей. Ему нужно было разработать систему, которая бы создавала отчеты для руководства на основе Excel файлов, полученных от порядка 10-20 исследовательских лабораторий.

Сначала эти отчеты создавали в Excel – в основном вручную – и направляли руководству и лабораториям в печатном виде или PDF.

В таком подходе нет нужного уровня автоматизации и гибкости. Поэтому Карло решил найти способ выгружать данные из файлов лабораторий, организовывать их в заданном порядке, и экспортировать данные в базу данных MySQL. Потом, уже в веб интерфейсе, создавать необходимые отчеты, напр., графики динамики по годам, и направлять всем участникам ссылку на финальный отчет.

Первоначальный подход занимал около 20 дней ужасной работы. Нам приходилось иметь дело с ошибками после копирования огромного объема данных из одного сводного отчета в Excel в отдельные отчеты по каждой задействованной лаборатории. Форматы очень разные, поэтому не представлялось возможным автоматизировать этот процесс в Excel. Кроме того, клиенту нужны были графики, где можно было бы сравнить результаты, полученные много месяцев назад – такое возможно только при выгрузке данных в MySQL.

В подобных задачах важно, во-первых, минимизировать работу вручную и сократить время на подготовку данных. Во-вторых, аккуратно экспортировать подготовленные данные в MySQL

Один из подходов к автоматизации – создать специальный макрос VBA. Но при таком большом объеме необходимых операций написание макроса с нуля займет неоправданно много времени. Кроме того, если вы хоть раз пробовали настроить интеграцию макроса с внешней базой данных, вы представляете, насколько утомительной может быть синхронизация вручную. Одно небольшое изменение в процессе (к примеру, другое название исходной таблицы) ведет к бесконечным правкам в скрипте.

Надстройка XLTools, с другой стороны, дала Карло гибкие инструменты для автоматизации всего процесса без VBA: извлечь, подготовить и экспортировать данные в базу данных MySQL.

XLTools Автоматизация – это мощный и многоцелевой инструмент. Последовательность всех операций записана на одном листе Excel, и все операции вручную сводятся к нажатию одной единственной кнопки.

Мой клиент очень доволен результатами, потому что теперь мы можем выполнить всю работу за 2 часа вместо 20 дней. XLTools помог нам облегчить работу с текущей XLS структурой. Процесс открыт для правок в будущем – скрипт очень легко изменить. Сейчас мы переносим данные в базу данных за минуты, где уже формируем все нужные отчеты.

Рассмотрим некоторые операции, автоматизированные в этом процессе.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: