ฉันต้องใช้เอกสารอ้างอิงใดเพื่อใช้ 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.