私はExcelワークシート(.xls)を持っています。私はそれをSQLスクリプトに変換する必要があります。単一のExcelワークシートは複数のテーブルで構成されています。結果として得られるスクリプトには、複数のcreate table文とinsert文が必要です。 http://www.sqlconverter.com/のような様々なツールを試しましたが、適切な解決策を得ることができません。私はそれを行うことができる他の方法ですか?excelワークシートをSQLスクリプトに変換する
答えて
私は、インポートウィザードを使用すると、あなたが望むよりも複雑なソリューションを使用していたため、データを読み込もうとしているというご意見に気づきました。 、
まず、各シートにSAVE ASを行い、CSVファイルに変換:
あなたはBULK INSERT
を試すことができます。インポートするシートごとに1つのCSVファイルが必要です。
次に、同様のデータ型と長さのテーブルを作成します。一般的なExcelセルはVARCHAR(255)です(特定の場合はNVARCHAR(255)このソリューションではユニコードは使用しないでください)。
お使いの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
は、基本的で素早い読み込み方法を試してみました。
もエクセルからグループインサートへの単純な方法がある:データはsepearate列の列B、C及びDである場合、単純に作成する式: =「& B1 &「、「『値(挿入します」』 "& C1 &" '' "& D1 &" ')テーブル定義との完全なSQL挿入スクリプトにXLSX、CSVまたはJSONからテーブルを変換するなど、これを、行いsqlizer.io
オンラインツール。
SQLizer.ioは5,000行未満の変換データ –
http://www.convertcsv.com/csv-to-sql.htm –
これはvamsi krishna mysoreによって作成されました 1.apacheのApoIを使用する必要があり、それがこのプロジェクトに私はsusedファイルとシステム 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<sheets;s1++)
{
System.out.println("for sheet"+s1);
Sheet s= wb.getSheet(s1);
String tbname=s.getName();
XWPFParagraph para1=doc.createParagraph();
para1.setAlignment(ParagraphAlignment.LEFT);
pararun=para1.createRun();
pararun.setText(tbname);
pararun.setFontSize(16);
pararun.setUnderline(UnderlinePatterns.WORDS);
int rows=s.getRows();
int cols=s.getColumns();
int indexrows=0;
int cols1=0;
int indexcols=0;
int pk=1000,dt=1000,cn=1000,ci=1000,dd=1000,n=1000,com=1000;
int ava=0;
List <String> comments= new LinkedList <String>();
List <String> sequence= new LinkedList <String>();
List <String> cid= new LinkedList <String>();
String createQuery="create table " +tbname+"(";
System.out.println(rows+" "+cols);
for(int j=0;j<rows;j++) //TO AVOID EMPTY ROW AND COLUMNS
{
sequence.clear();
for(int i=0;i<cols;i++) //TO GET ONE ROW DETAILS
{
indexcols=0;
cols1=0;
Cell c=s.getCell(i,j);
sequence.add(c.getContents());
}
for(int i=0;i<cols;i++)
{
if(sequence.get(i)=="")
{
cols1= ++indexcols;
}
else
{
ava=1;
indexrows=j;
break;
}
}
if(ava==1)
break;
}
for(;indexcols<cols;indexcols++) //TO ARRANG DATA IN REQUIRED ORDER
{
if(sequence.get(indexcols).toLowerCase().contains("PK".toLowerCase()))
{
pk=indexcols;
}
else if(sequence.get(indexcols).toLowerCase().contains("Column_id".toLowerCase()))
{
ci=indexcols;
}
else if(sequence.get(indexcols).toLowerCase().contains("Column_Name".toLowerCase()))
{
cn=indexcols;
}
else if(sequence.get(indexcols).toLowerCase().contains("nullable".toLowerCase()))
{
n=indexcols;
}
else if(sequence.get(indexcols).toLowerCase().contains("Data_TYpe".toLowerCase()))
{
dt=indexcols;
}
else if(sequence.get(indexcols).toLowerCase().contains("Default".toLowerCase()))
{
dd=indexcols;
}
else if(sequence.get(indexcols).toLowerCase().contains("comments".toLowerCase()))
{
com=indexcols;
}
}
indexrows++;
int rows1=indexrows;
for(;indexrows<rows;indexrows++) //PREPARING QUERY(For excel rows which contain data)
{
indexcols=cols1;
for(;indexcols<cols;indexcols++) //for all columns
{
Cell c=s.getCell(indexcols, indexrows);
String item=c.getContents();
//adding Column name to query
if(indexcols==cn)
{ if(!(item.equals("")) && indexrows!=rows1)
createQuery =createQuery+" ,"+item;
else if(item.equals(""))
break;
else
createQuery =createQuery+" "+item;
}
//adding data type to query
if(indexcols==dt)
{
createQuery =createQuery+" "+item;
}
//adding data default to query
else if(indexcols==dd)
{
if(item=="")
continue;
else
createQuery =createQuery+" "+"default "+item;
}
//addig primary key constaint to query
else if(indexcols==pk)
{
if(item.equalsIgnoreCase("true"))
createQuery =createQuery+" "+"primary key";
else
createQuery =createQuery+" "+"";
}
//adding not null constraint to query
else if(indexcols==n)
{
if(item.equalsIgnoreCase("no"))
createQuery =createQuery+" "+"not null";
else
createQuery =createQuery+" "+"";
}
//adding comments
else if(indexcols==com)
{
if(item!="")
{
comments.add(item);
}
else
{
comments.add("comments empty");
}
}
else if(indexcols==ci)
{
if(item!=null)
{
cid.add(item);
}
}
}//column loop close
}//row looop close
createQuery=createQuery+")";
System.out.println(createQuery);
XWPFParagraph para2=doc.createParagraph();
para2.setAlignment(ParagraphAlignment.LEFT);
pararun=para2.createRun();
pararun.setFontSize(14);
pararun.setText(createQuery+";");
System.out.println("table created successfully");
}//sheets loop closse
doc.write(output); //writing data into ouptu file
output.close();
}//try block close
catch(Exception e)
{
System.out.println(e.toString());
}
}//main close
}//class close
- 1. 長いExcelワークシート式をVBA式に変換する
- 2. .sqlのテーブルファイルをExcelに変換する
- 3. FMEで複数のテーブルを持つExcelワークシートを変換する
- 4. ExcelワークシートからExcelワークシートをJPGにエクスポート
- 5. Excel 2010スプレッドシートの単一ワークシートを.csv形式に変換
- 6. リンクはperlを使用してExcelワークシートを変換します
- 7. Excelワークシート変数ワークシートの範囲を合計する
- 8. DateTime変換エラー - Excel to SQL
- 9. Excel式をT-SQLに変換
- 10. intをSQLスクリプトのtimespanに変換する(SQL Server)
- 11. MS SQLスクリプトをMysqlとOracleに変換
- 12. MySQLスクリプトをSQL Serverに変換
- 13. xlrd "#N/A"を4212に変換するExcelスクリプト
- 14. C#Excelシートの内容を表形式に変換するスクリプト
- 15. 複数のExcelワークシートへのSQLエクスポート
- 16. linqのこのSQLスクリプトをエンティティに変換するには?
- 17. 簡単なSQLリクエストをApache PIGスクリプトに変換するには?
- 18. 単一のSQLSERVER 2005スクリプトをSQL SERVER 2000スクリプトに変換
- 19. ExcelファイルをSQLファイルに変換する方法
- 20. Excelで循環参照をSQLに変換する
- 21. jsonファイルをexcel/sqlクエリに変換する方法
- 22. 別のワークブックの新しいワークシートにExcelワークシートをコピーするVBA
- 23. 名前を変更するとvbaを使用してワークシートがExcelに変換される
- 24. Excel VSTO - リストオブジェクトをワークシートに転送する
- 25. ExcelワークシートをAS400にアップロード
- 26. IN句でSQLスクリプトをLINQに変換する
- 27. このt-sqlスクリプトを変換するには?
- 28. sqlテーブルからExcelテーブルへの変換
- 29. Windowsフォーム+ Excelワークシート
- 30. Excelワークシート分割
私の知る限り、MS SQL ServerがデータベースにExcelシートをロードするために、いくつかの機能を提供しています。http:// support.microsoft.com/kb/321686 – muehlbau
私はこのリンクを見たことがありますが、それはかなり複雑で、私はそれを得ることができません。私はそれのための簡単な解決策が必要です – user1402867