Bir excel çalışma sayfası (.xls) var. Onu sql betiğine dönüştürmem gerekiyor. Tek excel çalışma sayfası çoklu tablolardan oluşur. Sonuçta ortaya çıkan betik birden çok tablo oluşturmalı ve ifadeler içermelidir. http://www.sqlconverter.com/ gibi çeşitli araçları denedim, ancak uygun bir çözüm bulamıyorum. Yapabileceğim başka bir yol var mı?excel çalışma sayfasını sql komut dosyasına dönüştürebilirsiniz
cevap
İçe aktarma sihirbazını kullanmak istediğinizden çok daha karmaşık bir çözüm bulduğuna dair yorumunuzu farkettim, bu nedenle veri yüklemeye çalışıyor olmalısınız. ,
İlk her yaprağa Kaydet yapın ve CSV dosyalarını dönüştürebilirsiniz:
Sen BULK INSERT
deneyebilirsiniz. Almak istediğiniz her sayfa için bir CSV dosyanız olmalıdır.
Daha sonra, benzer veri türlerine ve getireceğiniz boyuta sahip bir tablo oluşturun. Tipik bir Excel hücresi, bir VARCHAR (255), (daha spesifik olmak isterseniz, NVARCHAR (255) gibi), ama bu çözüm için unicode'dan kaçınacağız). excel levha 5 sütun olsaydı
Yani,:
CREATE TABLE Sheet1
(Column1 VARCHAR(255)
, Column2 VARCHAR(255)
, Column3 VARCHAR(255)
, Column4 VARCHAR(255)
, Column5 VARCHAR(255)
)
Sonra masanın ağ paylaşımına veya yerel sunucuya/makinede SQL üzerinde dosya var SAĞLANAN için basit toplu insert yazabilir örnek. Örneğin, makinenizde dosya varsa ve ağda bir sunucuya zorlamak istediğinizde, SQL aşağıdaki komut dosyasındaki C:\
sunucunun makinenizde olmadığını düşünür. Bir klasörü paylaşmak zorunda ve ağ üzerinden erişmek olacaktır: \\MyMachineName\SharedFolder\Sheet1.csv
BULK INSERT dbo.Sheet1
FROM 'C:\LocalFolder\WhereTheFileIs\Sheet1.csv'
WITH (
FIELDTERMINATOR = ','
, ROWTERMINATOR = '\n'
)
Bu, o tabloya veri dosyası ve tabloda mevcut aynı sayıda sütun sağlanan almalısınız.
Güzel değil, ama basit. BULK INSERT
, denenmiş ve gerçek bir temel ve hızlı yükleme yöntemidir.
da Excell grup yerleştirmek için basit bir yöntem yoktur: Veri sepearate sütunda sütun B, C ve D ise sadece oluşturmak formülü: = '& B1 & ", ' "değerler (eklemek"' "& C1 &" '' "& D1 & '")
tablo tanımlarıyla tam SQL uç komut içine XLSX'e, CSV veya JSON'dan masaları dönüştürme de dahil olmak üzere, bu, yapar sqlizer.io çevrimiçi araçtır.
SQLizer.io, 5.000'den az satırın dönüşümleri için ücretsizdir veri –
Ayrıca http://www.convertcsv.com/csv-to-sql.htm –
bu vamsi krishna mysoretarafından oluşturuldu1.apache Apoi bu i
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. sql komut dosyasına sahip MSDeploy
- 2. .NET çalışma sayfasını .NET uygulamasına gömmeniz gerekiyor
- 3. excel çalışma sayfamı VBA
- 4. EXCEL çalışma sayfasını ClosedXML üzerinden CSV olarak kaydedebilir miyim?
- 5. Excel sayfasını bir komut dosyası kullanarak geçici tablo haline getirin
- 6. Apache'yi kullanarak Excel Sayfasını Kopyala POI
- 7. Excel veri sayfasını Oracle veritabanına yükle
- 8. PHP Excel dosyasına ekle
- 9. Apache'yi kullanarak bir excel sayfasını silin POI
- 10. Tüm çalışma sayfasını Apache POI
- 11. XLS linux komut dosyasına CSV
- 12. Excel Çalışma Kitabı Güncelleştirmesi
- 13. Excel çalışma sayfalarını birleştirin
- 14. Excel başlangıç komut istemi çalışmıyor
- 15. excel hücresinden excel çalışma sayfası işlevini çağırıyor
- 16. Excel to SQL, C# kitaplıkları
- 17. jasper report kullanarak excel sayfasını geliştirmeye çalışıyorum
- 18. C# kullanıcı denetiminde excel sayfasını yerleştirin
- 19. Rallide oluşturulan excel sayfasını yeniden adlandır
- 20. java komut dosyasında hırsızlık tarihine nasıl dönüştürebilirsiniz?
- 21. Tüm Excel dosyaları aynı sayfalara sahip olmadığında Access'e birden çok Excel dosyasını ve çalışma sayfasını içe aktarın
- 22. excel çalışma sayfalarını kopyalamak nasıl excel dosyası C# winforms açmadan başka bir excel çalışma kitabına?
- 23. Mdf/ldf veritabanı dosyalarını .bak dosyasına (db geri yükleme) T-SQL veya .net kodu kullanarak dönüştürebilirsiniz
- 24. Oracle sql geliştiricisinde sql çalışma sayfası gösterimi nasıl değiştirilir 3.2
- 25. Bir çalışma kitabı sayfasını apache POI ve java kullanarak başka bir çalışma kitabına nasıl kopyalayacağınız
- 26. Birlikte çalışma kılavuzları ile excel
- 27. Excel VBA - Çalışma KitabıÖncekiSave Olayı
- 28. NullReferenceException Excel çalışma sayfası oluşturma
- 29. Nesneleri excel çalışma sayfasında depolayın?
- 30. DB Bağlantısı için Excel VBA Komut Dosyası
AFAIK MS SQL Server veritabanı excel sayfaları yüklemek için bazı işlevler sağlıyorsa bu projede sused dosya ve sistem apache Apoi eklenmelidir kullanılmalıdır: http: // support.microsoft.com/kb/321686 – muehlbau
Bu bağlantıyı daha önce görmüştüm ama oldukça karmaşık ve bunun üstesinden gelemiyorum .. Bunun için basit bir çözüme ihtiyacım var – user1402867