ส่งออกสเปรดชีตและนำเข้าตามตารางลงใน mysql


0

อะไรคือวิธีที่ง่ายที่สุดในการส่งออกตารางจากทั้ง MS-Excel หรือ OpenOffice calc และนำเข้าสู่ฐานข้อมูล mysql โดยที่:

  1. ตารางจะถูกนำเข้าเป็นตารางใน Mysql
  2. ส่วนหัวของตารางจะเป็นฟิลด์ของฐานข้อมูล MySQL
  3. จะมีการวิเคราะห์อย่างชาญฉลาดว่ามีข้อมูลประเภทใดอยู่ในเซลล์เช่น ฟิลด์ข้อความจำนวนเต็มหรือค่าทศนิยม

คำตอบ:


5

หนึ่งในเครื่องมือที่ฉันมีกับฉันคือ 'Pentaho Kettle' ซึ่งเป็นโอเพ่นซอร์สข้ามแพลตฟอร์มที่ยอดเยี่ยม ETL คุณสามารถค้นหาฉบับ 'ฟรี' ได้ที่ http://kettle.pentaho.com/

เมื่อคุณดาวน์โหลดและติดตั้งซอฟต์แวร์แล้วขั้นตอนจะเป็นดังนี้:

  1. เปิดตัว Pentaho Kettle
  2. (โดยทั่วไป) คลิกที่ 'ไม่มีพื้นที่เก็บข้อมูล'
  3. สร้างการเปลี่ยนแปลงใหม่
  4. ทางด้านซ้ายคุณจะเห็น 'บล็อก' หลายอัน ในกรณีนี้ลากบล็อก 'อินพุต Excel' จากหมวดหมู่ 'ป้อนข้อมูล' ลงในไฟล์การแปลงของคุณ
  5. ดับเบิลคลิกที่บล็อกที่คุณเพิ่งลาก ขั้นตอนถัดไปอ้างถึงบล็อกนี้
    • คลิก 'เรียกดู' และเลือกไฟล์ Excel ที่คุณต้องการนำเข้า
    • คลิกที่ 'เพิ่ม' (อยู่ทางด้านซ้ายของปุ่มเรียกดู) คุณควรเห็นไฟล์ที่แสดงอยู่ในรายการ 'ไฟล์ที่เลือก' ใต้
    • ตอนนี้ไปที่แท็บ 'แผ่นงาน' (ควรเป็นแท็บที่สอง) และเลือกแผ่นงานที่มีข้อมูลที่คุณต้องการนำเข้าสู่ฐานข้อมูลของคุณ
    • สุดท้ายไปที่แท็บ '! Fields' (ควรอยู่ทางขวาสุด) คลิกที่ปุ่ม 'รับฟิลด์จากแถวส่วนหัว ... ' และเปลี่ยนประเภทข้อมูลอื่นตามลำดับ
    • คลิกที่ปุ่ม 'ดูตัวอย่างแถว' เพื่อให้แน่ใจว่าทุกอย่างเรียบร้อย
  6. ตอนนี้เราจะย้ายข้อมูลนี้ไปยังฐานข้อมูล SQL ของคุณ เพื่อความง่ายฉันจะอธิบายวิธีสร้างตารางใหม่บนฐานข้อมูล อย่างไรก็ตามโปรดสังเกตว่า Kettle มีบล็อกสำหรับการจัดการการอัปเดตและงาน 'insert / update'
  7. อีกครั้งลากบล็อกจากด้านซ้ายมือ คราวนี้ไปที่ส่วน 'เอาท์พุท' และเลือก 'เอาท์พุทตาราง'
  8. เชื่อมต่อสองช่วงตึกโดยกดปุ่ม 'Shift' ค้างไว้แล้วลากตัวชี้เมาส์จากจาก Excel ไปยังบล็อกตารางผลลัพธ์ ขั้นตอนถัดไปเกี่ยวข้องกับบล็อกตารางการส่งออก
    • ก่อนอื่นเราต้องสร้างการเชื่อมต่อกับฐานข้อมูล โดยคลิกที่ปุ่ม 'ใหม่ ... ' ถัดจากช่องแบบเลื่อนลง 'การเชื่อมต่อ'
    • ในรายการ 'ประเภทการเชื่อมต่อ' เลือก 'MySQL' (ดังที่คุณเห็น Kettle ช่วยให้คุณสามารถเชื่อมต่อกับฐานข้อมูลที่แตกต่างกันจำนวนมาก) กรอกข้อมูลในฟิลด์ที่เหมาะสมทั้งหมดและอย่าลืมคลิกที่ 'ทดสอบ' เพื่อให้แน่ใจว่าการสื่อสารใช้งานได้
    • ป้อนชื่อของตาราง
    • ไปที่แท็บ 'ฟิลด์ฐานข้อมูล' และเลือก 'ป้อนการแมปฟิลด์' จากที่นี่ให้แน่ใจว่าคุณแมปคอลัมน์ excel ทั้งหมดในสตรีมไปยังเขตข้อมูล MySQL ที่เหมาะสมแล้วคลิก 'ตกลง' (หากชื่อใน Excel ตรงกับตารางของคุณคุณสามารถคลิกที่ 'เดา' เพื่อให้คุณปิด)
  9. สุดท้ายบันทึกการเปลี่ยนแปลงของคุณและเรียกใช้โดยเลือกเมนู 'การแปลง & gt; Run' หากทุกอย่างเป็นไปด้วยดีคุณจะเห็นข้อความที่ระบุว่า 'เสร็จสิ้นการแปลง' ในกล่องดำเนินการภายใต้แท็บ 'การบันทึก'

โชคดี!


1
ว้าวเครื่องมือดูซับซ้อนในการติดตั้งและใช้งาน แต่ในที่สุด (ขอบคุณคำอธิบายของคุณ) ฉันจัดการเพื่อให้มันใช้งานได้! หมายเหตุด้านหนึ่ง: ในขั้นตอนการแสดงผลตารางฉันต้องเลือกแท็บ "เขตข้อมูลฐานข้อมูล" กด "รับฟิลด์" จากนั้นเลือก "SQL" แล้วเลือก "ดำเนินการ" นี่เป็นวิธีเดียวที่จะทำให้โครงสร้างถูกแปลเป็นตารางฐานข้อมูลโดยอัตโนมัติ มิฉะนั้นกระบวนการแปลงจะบ่นว่าไม่พบฟิลด์ในตาราง บางทีคุณสามารถปรับปรุงคำตอบของคุณด้านบนด้วยความคิดเห็นนี้? (ฉันไม่มีความสามารถในการแก้ไข)
Roalt

จุดดี! ฉันลืมเรื่องนั้น (นั่นคือสิ่งที่เกิดขึ้นเมื่อคุณตอบจากความทรงจำ;) โดยทั่วไปสิ่งที่ฉันทำคือคลิกที่ 'ป้อนการแมปฟิลด์' และใช้ตัวช่วยสร้างเพื่อแมปคอลัมน์ Excel ของฉันกับตาราง (หากพวกเขามีชื่อเดียวกันการคลิก 'เดา' สามารถประหยัดเวลาได้มาก) ฉันจะแก้ไขคำตอบเพื่อให้แน่ใจว่าสอดคล้องกับความคิดเห็นของคุณ
Edgar

เมื่อพิจารณาถึงฟังก์ชั่นทั้งหมดที่มีในโปรแกรมนี้ฉันจะต้องหาเวลาเพิ่มเติมเพื่อดูสิ่งอื่น ๆ ที่คุณสามารถทำได้ ดูเหมือนว่าทรงพลังมาก!
Roalt


0

Excel2MySQL ช่วยให้คุณสามารถนำเข้าสเปรดชีต Excel โดยตรงเป็นตารางลงใน MySQL หากต้องการนำเข้าไฟล์ OpenOffice Calc เพียงบันทึกเป็น xls แล้วนำเข้า

(การเปิดเผยแบบเต็มฉันเป็นผู้เขียน Excel2MySQL)

ตรงตามความต้องการของคุณทั้งหมด:

  1. แต่ละแผ่นจะถูกนำเข้าเป็นตารางใน MySQL ในความเป็นจริงตารางจะถูกสร้างขึ้นโดยอัตโนมัติ
  2. ส่วนหัวของตารางสามารถใช้เพื่อกำหนดเขตข้อมูลของตาราง MySQL
  3. Excel2MySQL ทำการวิเคราะห์อย่างชาญฉลาดเกี่ยวกับชนิดข้อมูลคอลัมน์เพื่อปรับประเภทฟิลด์ของตารางให้เหมาะสมโดยอัตโนมัติ (tinyint, smallint, Mediumint, int, bigint, float, double, varchar, วันที่, เวลา, วันที่และเวลา)

และอื่น ๆ:

  • เชื่อมต่อโดยตรงกับเซิร์ฟเวอร์ MySQL ของคุณ
  • รวมอินเตอร์เฟสบรรทัดคำสั่งหากคุณต้องการนำเข้าโดยอัตโนมัติ
  • ผนวกหรือแทนที่ตารางที่มีอยู่
  • ตรวจหาและเพิ่มเขตข้อมูลใหม่ในตารางที่มีอยู่โดยอัตโนมัติ
  • กระจายเซลล์ที่ผสานของ Excel โดยอัตโนมัติ (ไม่เหมือนกับการแยกออกจากกัน)
  • เลือกที่จะไม่รวมแถวว่างและคอลัมน์ว่าง
  • เลือกที่จะเปลี่ยนช่องว่างเพื่อขีดล่างในชื่อฟิลด์

http://excel2mysql.net

screenshot


1
เนื่องจากนี่เป็นผลิตภัณฑ์ของคุณคุณสามารถให้คำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการแก้ปัญหาของ OP หรือไม่ ผู้สร้างความเห็นของผลิตภัณฑ์เข้าใจว่าผลิตภัณฑ์นั้นเป็น "วิธีแก้ปัญหาที่ง่ายที่สุดและเร็วที่สุดที่มีอยู่" นั้นไม่เอนเอียง
John Bensin

ขออภัยเกี่ยวกับการเปิดเผยข้อมูลอย่างเต็มรูปแบบ ... ฉันเป็นผู้เขียนโปรแกรมอรรถประโยชน์นี้ให้ดูการเปลี่ยนแปลงข้างต้น
panofish
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.