ฉันต้องใช้เอกสารอ้างอิงใดเพื่อใช้ Microsoft.Office.Interop.Excel ใน. NET


102

ฉันสนใจที่จะใช้ C # เพื่อจัดการ / อัตโนมัติไฟล์ Excel

หลังจากท่องเว็บฉันพบVSTOแต่ดูเหมือนว่าคุณไม่สามารถใช้สิ่งนั้นใน Visual Studio Express Edition ได้ดังนั้นฉันจึงไม่สามารถใช้สิ่งนั้นได้

เมื่อไม่กี่นาทีที่ผ่านมาฉันสังเกตเห็นคำถามในไซต์นี้ซึ่งใช้เนมสเปซนี้ในโค้ด:

Microsoft.Office.Interop.Excel

ดังนั้นฉันจึงสงสัยว่าทั้งหมดที่ฉันต้องใช้นั้นคือการเพิ่มข้อมูลอ้างอิงที่จำเป็นหรือไม่และถ้าเป็นเช่นนั้นจะต้องเพิ่มการอ้างอิงใด

อัปเดต

ฉันติดตั้ง "Primary Interop Assemblies" ตามคำตอบที่ได้รับการยอมรับ แต่ด้วยเหตุผลบางประการพวกเขายังคงหายไปในกล่องโต้ตอบเพิ่มการอ้างอิงภายใต้ ".NET" แต่มีอยู่ใน GAC

ฉันจึงเพิ่มข้อมูลอ้างอิงโดยใช้ "เรียกดู" และอยู่Microsoft.Office.Interop.Excel.dllในโฟลเดอร์ GAC

แต่หากมองหาคำถามที่คล้ายกันในไซต์นี้เกี่ยวกับการเพิ่มข้อมูลอ้างอิงจาก GAC ดูเหมือนว่าไม่แนะนำให้ทำเช่นนี้

คำตอบ:


102

อัปเดต (ขอบคุณผู้ใช้ 2347528)

แอสเซมบลีเหล่านี้มีให้ในรูปแบบแพ็คเกจ NuGet ซึ่งง่ายกว่าคำตอบเดิมของฉันมาก

คุณสามารถติดตั้งโดยคลิกขวาที่การอ้างอิงในโปรเจ็กต์ของคุณและเลือกจัดการแพ็คเกจ NuGet ...และค้นหาแพ็คเกจใดแพ็คเกจหนึ่งที่แสดงด้านล่างหรือติดตั้งโดยใช้คอนโซลตัวจัดการแพ็คเกจ:

PM> Install-Package Microsoft.Office.Interop.Excel

สิ่งเหล่านี้มีให้ใช้งานในรูปแบบ "Primary Interop Assemblies" ซึ่งสามารถติดตั้งกับ Office หรือดาวน์โหลดและติดตั้งแยกต่างหาก วิธีการ: ติดตั้ง Office Primary Interop Assembliesประกอบ

เมื่อติดตั้งแล้วคุณสามารถอ้างอิงได้ในโครงการของคุณในกล่องโต้ตอบเพิ่มการอ้างอิงภายใต้. NET หากคุณไม่เห็นชุดประกอบ Microsoft.Office.Interop เหล่านั้นแสดงว่ายังไม่ได้ติดตั้ง ติดตั้งจากการตั้งค่าของคุณหรือดาวน์โหลดและติดตั้งแยกต่างหาก (ดูลิงค์ของฉันด้านบนสำหรับการดาวน์โหลด)


ฉันพบส่วนประกอบมากมายในแท็บ "Com" ชื่อ Microsoft Office .... ใช่หรือไม่
user850010

1
นี่คือบริการ COM ที่ Visual Studio สามารถสร้างชุดประกอบการทำงานร่วมกันของ. NET ไม่แนะนำให้คุณใช้สิ่งเหล่านี้ คุณควรใช้ชุดประกอบ PIA ที่ออกจาก Microsoft ควรปรากฏในแท็บ. NET ในกล่องโต้ตอบเพิ่มการอ้างอิง หากคุณไม่เห็นคุณต้องติดตั้ง PIA จากการตั้งค่า Office ของคุณหรือดาวน์โหลดแยกต่างหากตามที่ฉันเชื่อมโยงในคำตอบของฉัน
moribvndvs

2
@HackedByChinese ฉันไม่เห็นแท็บ. NET ในกล่องโต้ตอบการเพิ่มการอ้างอิง

1
ใน Visual Studio 2013 ฉันพบการอ้างอิงเหล่านี้ใน Assemblies-> Extensions ในเมนูด้านซ้ายของหน้าต่าง Add References
Benjamin Ray

1
ฉันกำลังพยายามติดตั้งโปรแกรม C # ที่ใช้ Microsoft.Office.Interop.Excel.dll บนเซิร์ฟเวอร์ Windows 2012 โปรแกรมทำงานได้ดีบนพีซี Windows 7 ของฉัน แต่ถึงแม้หลังจากติดตั้ง PIA บนเซิร์ฟเวอร์แล้วฉันก็ยังได้รับข้อความแสดงข้อผิดพลาดเกี่ยวกับส่วนประกอบ System.Runtime.Interop.COM หายไป โปรแกรมหยุดทำงานเมื่อฉันพยายามสร้างอินสแตนซ์วัตถุ Excel.Application () มีอะไรอีกไหมที่ฉันขาดหายไป?
Melanie

50

เพิ่งมีปัญหานี้ด้วยตัวเองและคำตอบที่ยอมรับไม่ได้ช่วยฉัน แต่ฉันแก้ไขด้วย:

Add reference > Browse > C: > Windows > assembly > GAC > Microsoft.Office.Interop.Excel > 12.0.0.0_etc > Microsoft.Office.Interop.Excel.dll


2
ฉันกำลังมองหาวิธีแก้ปัญหานี้ทุกที่
Karim O.

3
ขอบคุณสำหรับทิป. เป็นเรื่องน่าขันที่ Microsoft เองไม่สามารถทำงานนี้ได้อย่างน่าเชื่อถือ - 2014 และเรายังคงอ้างถึง. dlls โดยตรง ...
Mike Honey

12
Add Reference-> COM-> Microsoft Excel 12.0 Object Libraryเหมือนกัน
primo

ทำงานบนเซิร์ฟเวอร์หรือไม่ โดยไม่ต้องติดตั้ง office บนเซิร์ฟเวอร์?
Naveen Katakam

โอเคขอบคุณ. คุณมีความคิดบ้างไหม ฉันสามารถใช้มันโดยไม่ต้องติดตั้ง office .. ฉันใช้สีฟ้า
Naveen Katakam

24

คำตอบไม่ได้ช่วยฉันแก้ปัญหาฉันไม่พบ (และเรียกดู) ชุดประกอบแม้ว่าฉันจะติดตั้งโดยใช้ตัวติดตั้ง msi ของ Microsoft ก็ตาม สำหรับฉันชุดประกอบ excel อยู่ด้านล่างC:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll


หลังจากที่ฉันลอง Folder GAC, GAC_32 และ GAC_64 ฉันคิดว่ามันจะไม่อยู่ในโฟลเดอร์สุดท้าย GAC_MSIL แต่มันเป็น ขอบคุณสำหรับความคิดเห็นของคุณ ทำงานได้ดีสำหรับฉัน!
Marty_in_a_Box

คำตอบที่ง่ายและดีที่สุด ขอบคุณครับ.
Wessam El Mahdy

8

เพียงเพิ่มการอ้างอิงของMicrosoft.Office.Interop.Excel.

ประกอบด้วยคลาสที่เกี่ยวข้องกับ MicroSoft Excel โดยไม่จำเป็นต้องเพิ่มการอ้างอิงเพิ่มเติม


1
นั่นคือสิ่งแรกที่ฉันพยายาม แต่ไม่พบส่วน "Office"
user850010

จริงๆแล้วมีปัญหาเดียวกันกับ @ user850010 แต่ในที่สุดก็รู้ว่าฉันคลิกขวาและเพิ่มในโฟลเดอร์อ้างอิงของโครงการที่ไม่ถูกต้องในโซลูชันของฉัน
ผู้ใช้

4

ผมคิดว่าสิ่งที่คุณกำลังพยายามที่จะทำคือการเพิ่มMicrosoft.Office.Interop.Excelกับusingคำสั่งที่มีออกมาเพิ่มการอ้างอิงในการประยุกต์ใช้ของคุณในกรณีที่มันเคยชินจะพบ ก่อนที่จะเรียกมันด้วยusingคำสั่งคุณต้องเพิ่มการอ้างอิงถึงแอปพลิเคชันของคุณ คลิกขวาReferencesและเพิ่มExcel Interopข้อมูลอ้างอิง




3

หากคุณติดตั้ง Microsoft Office คุณจะสามารถเพิ่มการอ้างอิงไปยัง Interop.Excel ได้

ตัวอย่างเช่นพีซีที่ฉันกำลังพิมพ์อยู่มี MSVS 2010 C # Express และ Office 2010 ฉันสามารถเพิ่มการอ้างอิงไปยัง Microsoft.Office.Interop.Excel 11.0.0.0

'หวังว่าจะช่วยได้


3

ในคอมโพเนนต์ com ชื่อ: "Microsoft Office 14 Object Library"


1
VS2010: การเพิ่มการอ้างอิง COM ไปยัง "Microsoft Office 14 Object Library" จะเพิ่มการอ้างอิงถึง "Microsoft.Office.Core" เท่านั้น ดีกว่า: ใช้การอ้างอิง COM "Microsoft Excel 14.0 Object Library" ชี้ไปที่ไฟล์ปฏิบัติการ Excel ที่ติดตั้งโดยตรง แต่จะแสดงเป็นการอ้างอิงถึงทั้ง "Microsoft.Office.Core" และ "Microsoft.Office.Interop.Excel" ควรช่วยในกรณีที่คุณต้องการเรียกใช้และปรับใช้บนเครื่องที่ติดตั้ง Excel ไว้เท่านั้น
JS

3

ตัวเลือกที่ดีที่สุดตั้งแต่ Office 2007 คือการใช้Open XML SDKสำหรับมัน เราใช้ Word.Interop แต่มันก็หยุดในบางครั้งและไม่แนะนำสำหรับ Microsoft ให้ใช้เป็นการจัดรูปแบบเอกสารฝั่งเซิร์ฟเวอร์ดังนั้น Open XML SDK ช่วยให้คุณสร้างเอกสารคำในรูปแบบ DOCX และ Open XML ได้อย่างง่ายดาย ช่วยให้คุณทำงานได้ดีกับความสามารถในการปรับขนาดความมั่นใจ (ไฟล์หากเกิดความเสียหายสามารถสร้างใหม่ได้) และคุณสมบัติที่ดีอีกอย่างหนึ่ง


2

นี่คือวิธีแก้ปัญหาที่ยอดเยี่ยมคุณเพียงแค่ต้องมี excell.dll ในโฟลเดอร์ Debug / Release ของคุณเหมืองมีขนาด 77,824 ไบต์ฉันดาวน์โหลดเป็นไฟล์สิ่งนี้ยังอธิบายว่าเหตุใดบางคนจึงรวบรวม Debug แต่ Release ไม่ใช่หรือในทางกลับกัน

เทรนโต


2

ฉันเพิ่งมีปัญหาเดียวกัน แต่ไม่มีคำตอบใดช่วยฉันได้ ฉันพบ dll บนพีซีของฉันในตำแหน่งที่ Mostey ระบุไว้: ( C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll) แต่นี่ไม่ใช่สิ่งที่อ้างถึงในโครงการที่ฉันพยายามสร้าง

อ้างอิงในโครงการของเราใน Visual Studio 2012 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\ชี้ไปที่ สถานที่นี้ว่างเปล่าสำหรับฉัน แต่ทุกคนก็ใช้ได้ดี ต้องใช้ความพยายามหลายครั้ง แต่ในที่สุดฉันก็ติดตามตัวติดตั้งที่ใช้งานได้ ฉันหวังว่านี่จะช่วยให้คนอื่น ๆ ไม่ต้องวุ่นวายเหมือนเดิม!

-> โปรแกรมติดตั้ง Office Tools Bundle สำหรับ VS2012 <-

นี้ตั้งอยู่บนเอกสาร Office และดาวน์โหลดหน้า เลื่อนลงไปที่เครื่องมือดาวน์โหลด นอกจากนี้ยังมีหนึ่งสำหรับ VS2013


1

1. ดาวน์โหลดและติดตั้ง: Microsoft Office Developer Tools

2. เพิ่มข้อมูลอ้างอิงจาก:

C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Visual Studio เครื่องมือสำหรับ Office \ PIA \ Office15


1

ฉันมีปัญหาเดียวกันและ Microsoft.Office.Interop ไม่ปรากฏในตัวเลือก "เพิ่มการอ้างอิง" เมื่อฉันอัปเกรด VS2012 เป็น VS2015 ฉันซ่อมแซมการติดตั้งโดยทั่วไป ( แผงควบคุม> โปรแกรมและคุณสมบัติ> VS 2012> คลิกขวาที่เปลี่ยน> ซ่อมแซม ) และเพิ่มส่วนประกอบ Microsoft Office หลังจากนั้นโซลูชันเดียวกันก็เริ่มทำงาน


0

ตรวจสอบให้แน่ใจว่าโปรเจ็กต์ของคุณเป็นแบบ 32 บิต

ฉันประสบปัญหานี้ทันทีที่ฉันเลือก "ต้องการ 32 บิตและสร้างขึ้นใหม่" ชุดประกอบ Office Interop ทั้งหมดที่มีอยู่ใน Reference-> Assemblies-> Search "Office"

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