Вопрос по sql, excel – конвертировать лист Excel в SQL скрипт

7

У меня есть лист Excel (.xls). Мне нужно преобразовать его в сценарий SQL. Один лист Excel состоит из нескольких таблиц. Таким образом, результирующий скрипт должен иметь несколько операторов создания таблицы и вставки. Я пробовал различные инструменты, такие какhttp://www.sqlconverter.com/ но я не могу найти правильное решение. Любой другой способ, которым я могу сделать это?

Я видел эту ссылку раньше, но она довольно сложная, и я не могу пройти через нее .. Мне нужно простое решение для этого user1402867
AFAIK MS SQL Server предоставляет некоторые функции для загрузки листов Excel в базу данных:support.microsoft.com/kb/321686 muehlbau

Ваш Ответ

4   ответа
0

Существует также простой способ группировки вставок из Excell: просто, если ваши данные находятся в столбцах B, C и D в отдельном столбце, создайте формулу: = "вставить в значения ('" &B1 & "','" & C1 & " ''" &D1 & " ')

0

это создано vamsi krishna mysore 1.apache apoi должен использоваться, он должен быть добавлен к файлам и системному apache apoi, который я использовал в этом проекте

  package excelread;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Scanner;
    import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
    import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
    import org.apache.poi.xwpf.usermodel.UnderlinePatterns;
    import org.apache.poi.xwpf.usermodel.XWPFDocument;
    import org.apache.poi.xwpf.usermodel.XWPFParagraph;
    import org.apache.poi.xwpf.usermodel.XWPFRun;

    public class ExcelRead 
    {

        public static void main(String[] args) throws Exception
        {
           try
        {
            FileOutputStream output=new FileOutputStream("result.docx");
      FileOutputStream output=new FileOutputStream("result.sql");//sql script in the script
      FileOutputStream output=new FileOutputStream("result.xlxs");
    FileOutputStream output=new FileOutputStream("result.csv");
            XWPFDocument doc=new XWPFDocument();
            XWPFParagraph para=doc.createParagraph();
            para.setAlignment(ParagraphAlignment.CENTER);
            XWPFRun pararun=para.createRun();
            pararun.setBold(true);
            pararun.setFontSize(20);
            pararun.setText("Database Tables\n\n");
            File f= new File("C:\\Users\\admin\\Desktop\\BUILDING_TB.xls");//file location where it is stored in the system
            Workbook wb= Workbook.getWorkbook(f);
            int sheets=wb.getNumberOfSheets();
            for(int s1=0;s1 comments= new LinkedList ();
                   List  sequence= new LinkedList ();
                   List  cid= new LinkedList ();
                   String createQuery="create table " +tbname+"(";
                   System.out.println(rows+" "+cols);
                    for(int j=0;j
11

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

Ты можешь попробовать :BULK INSERT

Сначала сделайте СОХРАНИТЬ КАК на каждом листе и конвертируйте их в файлы CSV. У вас должен быть один файл CSV для каждого листа, который вы хотите импортировать.

Затем создайте таблицу с аналогичными типами данных и длиной,Я буду вводить. Типичная ячейка Excel - это VARCHAR (255), (вероятно, больше похоже на NVARCHAR (255), если вы хотите быть конкретным, но мыЯ буду избегать Unicode для этого решения).

Итак, если ваш лист Excel имеет 5 столбцов:

CREATE TABLE Sheet1
(Column1 VARCHAR(255)
, Column2 VARCHAR(255)
, Column3 VARCHAR(255)
, Column4 VARCHAR(255)
, Column5 VARCHAR(255)
)

Затем вы можете записать простую массовую вставку в таблицу, ПРЕДОСТАВЛЯЯ, что файл находится в общей сетевой папке или локально на сервере / машине, где находится экземпляр SQL. Например, если у вас есть файл на вашем компьютере и вы хотите отправить его на сервер в сети, SQL подумает:C:\ в приведенном ниже скрипте был на сервере, а не на вашей машине. Вам нужно будет открыть общий доступ к папке и получить к ней доступ по сети:\\MyMachineName\SharedFolder\Sheet1.csv

BULK INSERT dbo.Sheet1
FROM 'C:\LocalFolder\WhereTheFileIs\Sheet1.csv'
WITH (
FIELDTERMINATOR = ','
, ROWTERMINATOR = '\n'
)

Это должно привести к получению данных в эту таблицу при условии, что в файле и таблице существует одинаковое количество столбцов.

Это'это не красиво, но этовсе просто.BULK INSERT является проверенным и верным методом базовой и быстрой загрузки.

3

Онлайн инструментsqlizer.io делает это, включая преобразование таблиц из XLSX, CSV или JSON в сценарии вставки SQL с полным определением таблиц.

Такжеconvertcsv.com/csv-to-sql.htm Paul Totzke
SQLizer.io бесплатен для преобразования менее 5000 строк данных a_good_swan

Похожие вопросы