---
title: "Från Excel till MySQL?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12761-från-excel-till-mysql"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "MM"
published: "2001-11-21T10:15:00.000Z"
updated: "2001-11-22T10:28:00.000Z"
replies: 10
views: 281
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/12761-från-excel-till-mysql"
---

# Från Excel till MySQL?

## #1 — MM, 2001-11-21T10:15Z

Hej
Någon som har tips om hur jag ska bära mig åt för att få ca 5000 artiklar från Excel till min MySQL-databas (använder 24-7webhosting.com)

Om det inte skulle gå alls, borde det väl gå att exportera excelfilen till kommaseparerad textfil och sen pula in den i db:n, men helst vill jag göra det direkt.

Nån som vet?

Permalänk: https://www.webforum.nu/p/12761

## #2 — Vide, 2001-11-21T10:47Z

Du kan öppna excel-filen med ASP och loopa in den i MySQL. Sedan om det är effektivt eller inte vet jag inte. Har inte MySQL något verktyg för import?

Sök i detta forumet för hur du fixa med excel-filen via ASP.

Permalänk: https://www.webforum.nu/p/295347

## #3 — jorgen, 2001-11-21T13:25Z

> Om det inte skulle gå alls, borde det väl gå att exportera excelfilen till kommaseparerad textfil och sen pula in den i db:n, men helst vill jag göra det direkt.

Exakt så får du göra. Om du använder phpmyadmin så läser du bara in textfilen och anger att kolumnerna separeras med kommatecken.

Finns ingen genväg vad jag vet.
 <http://cgi.webforum.nu/wf/Forum43/HTML/000247.html> 

Vet at det ska finnas en bättre tråd ang detta, men hittar inte den :(

mvh Jörgen :)

Permalänk: https://www.webforum.nu/p/295348

## #4 — Vide, 2001-11-21T13:57Z

Varför använda mellanlagring när du kan överföra direkt?

Permalänk: https://www.webforum.nu/p/295349

## #5 — MM, 2001-11-21T14:00Z

hmm... testade lite lokalt, bara för att veta hur CSVfilen skulle se ut. Då blev det så här fel:
\-------
SQL-query: 

LOAD DATA LOCAL INFILE 'c:\\windows\\TEMP\\php7240.TMP'  INTO TABLE test FIELDS TERMINATED BY ';' ENCLOSED BY '\\"' ESCAPED BY '\\\\' LINES TERMINATED BY '\\n' 
MySQL said: File 'c:windowstempphp7240.tmp' not found (Errcode: 2)
\-----------

CSV-filen ser ut så här:
\-----
1;fd g
2;ffs4
3;gg4sg

osv....
\------

vad göra åt detta?

Permalänk: https://www.webforum.nu/p/295350

## #6 — MM, 2001-11-21T14:02Z

Vide, visst skulle jag vilja överföra direkt, men saken är ju den att jag inte har en aning om hur, därav alla dessa frågor...

Permalänk: https://www.webforum.nu/p/295351

## #7 — Vide, 2001-11-21T14:51Z

Den sökvägen ser inte helt rätt ut:

```
'c:windowstempphp7240.tmp'
```

Permalänk: https://www.webforum.nu/p/295352

## #8 — MM, 2001-11-21T20:00Z

Nej, jag försöker ju hämta en fil som ligger i mappen "Mina Dokument", så jag fattar inte varför MySQL härjar om någon temp-katalog...?

Permalänk: https://www.webforum.nu/p/295353

## #9 — SPiN, 2001-11-21T20:58Z

Jag håller med Vide, varför mellanlagra?
Du kan använda ett excel-dokument på samma sätt som du gör med vanliga databaser. Hemligheten ligger i drivern Microsoft Excel Driver (\*.xls).

Här kommer lite ledtrådar i ett kodexempel som du kan experimentera med:

```
set excel = Server.CreateObject("ADODB.Connection")
excel.Open "driver={Microsoft Excel Driver (*.xls)}; DBQ=" & Server.MapPath("/mittlilladok.xls")

set mysql = Server.CreateObject("ADODB.Connection")
mysql.Open "driver=MySQL; server=DIN_SERVER; uid=USER; pwd=PASSWORD; database=DB"

set rsXls = excel.Execute("SELECT fld1, fld2, fld3 FROM spreadSheet")

Do Until rsXls.EOF

mysql.Execute("INSERT INTO spreadSheet (fld1, fld2, fld3) VALUES('" & rsXls("fld1") & "', '" & rsXls("fld2") & "', '" & rsXls("fld3") & "')")

rsXls.MoveNext
Loop

rsXls.Close
excel.Close
mysql.Close

set rsXls = Nothing
set excel = Nothing
set mysql = Nothin
```

Permalänk: https://www.webforum.nu/p/295354

## #10 — MM, 2001-11-22T08:53Z

Spin, jag testade din kod, men det verkar bli strul med excel-bladet.
Fel:
\--------
Microsoft OLE DB Provider for ODBC Drivers fel '80040e37' 

\[Microsoft\]\[ODBC Excel Driver\] The Microsoft Jet database engine could not find the object 'SpreadSheet'. Make sure the object exists and that you spell its name and the path name correctly. 

/ddrive/sprinfo/excel_mysql_test/test1.asp, rad 14 
\-----------
koden:

```
set excel = Server.CreateObject("ADODB.Connection")
excel.Open "driver={Microsoft Excel Driver (*.xls)}; DBQ=" & Server.MapPath("/mittlilladok.xls")
set mysql = Server.CreateObject("ADODB.Connection")
mysql.Open "driver=MySQL; server=Localhost; uid=XXXX; pwd=XXXX; database=test"

set rsXls = excel.Execute("SELECT fld1, fld2, fld3 FROM SpreadSheet")

Do Until rsXls.EOF

mysql.Execute("INSERT INTO spreadSheet (fld1, fld2, fld3) VALUES('" & rsXls("fld1") & "', '" & rsXls("fld2") & "', '" & rsXls("fld3") & "')")

rsXls.MoveNext
Loop

rsXls.Close
excel.Close
mysql.Close

set rsXls = Nothing
set excel = Nothing
set mysql = Nothing
```

Jag kan inte fatta det på annat sätt än att bladet i Excel-filen skall heta SpreadSheet, men då funkar det icke...

Permalänk: https://www.webforum.nu/p/295355

## #11 — MM, 2001-11-22T10:28Z

Sådärja, kom på vad som var fel.

Jag var ju tvungen att ange ett område i Excel-filen och döpa det området till 'Spreadsheet'. 

Ifall någon annan ville veta...

Tack för hjälpen!

Permalänk: https://www.webforum.nu/p/295356

---

Tråden på webben: https://www.webforum.nu/amne/asp/12761-från-excel-till-mysql
