ฉันจะสร้างส่วนต่างของสเปรดชีตที่อ่านได้โดยใช้ git diff อย่างไร


168

เรามีสเปรดชีตจำนวนมาก (xls) ในที่เก็บซอร์สโค้ดของเรา เหล่านี้มักจะแก้ไขได้ด้วย Gnumeric หรือ openoffice.org และส่วนใหญ่จะใช้ในการเติมฐานข้อมูลสำหรับการทดสอบหน่วยที่มีDbUnit ไม่มีวิธีง่าย ๆ ในการทำ diffs บนไฟล์ xls ที่ฉันรู้จักและสิ่งนี้ทำให้การรวมที่น่าเบื่อและข้อผิดพลาดเกิดขึ้นได้ง่ายมาก

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

ฉันต้องการที่จะทำการ diffing (และการผสาน) กับgitฉันทำกับไฟล์ข้อความ ฉันจะทำเช่นนี้ได้อย่างไรเมื่อออกgit diff?


4
ฉันคิดว่าการทดสอบหน่วยของแท็กและ dbunit ถูกนำไปใช้อย่างไม่ถูกต้องที่นี่ คำถามเกี่ยวกับการเปรียบเทียบไฟล์สำหรับรูปแบบไฟล์เฉพาะและไม่มีอะไรเกี่ยวข้องกับการทดสอบหน่วย
Hamish Smith

1
ไม่ใช่คำตอบ (ต้องใช้ Excel และเป็นผลิตภัณฑ์เชิงพาณิชย์) แต่สำหรับผู้ที่ GooBinghoo นำมาที่นี่ - formulasoft.com/excel-compare.html ใช้งานได้ดีสำหรับฉัน
CAD bloke

1
ฉันใช้สคริปต์ Python นี้เพื่อกระจาย Excel ที่เราเช็คอินไปคอมไพล์ ฉันย้ายรหัส GO นี้ (ซึ่งได้รับการย้ายจาก Perl) ไปยัง Python: github.com/tokuhirom/git-xlsx-textconv#see-also มันช่วยให้คุณใช้git diffและgitk
nmz787


วิธีง่ายๆในการไปก็คือการส่งออกข้อมูลของสเปรดชีตทั้งในรูปแบบ CSV / ข้อความและทำ diff ทั่วไป (ด้วยโปรแกรมแก้ไขที่คุณต้องการหรือไฟล์ diff)
PPC

คำตอบ:


109

เราประสบปัญหาเดียวกันใน บริษัท ของเรา ผลการทดสอบของเรายอดเยี่ยมสมุดงาน ความแตกต่างแบบไบนารีไม่ใช่ตัวเลือก ดังนั้นเราจึงนำเสนอเครื่องมือบรรทัดคำสั่งอย่างง่ายของเราเอง ตรวจสอบโครงการ ExcelCompare Infact นี้ช่วยให้เราทำการทดสอบอัตโนมัติได้ค่อนข้างดี ขอแพทช์ / คุณสมบัติค่อนข้างยินดีต้อนรับ!


2
@ KimStacks ใช่ใช้ได้กับ xls, xlsx, ods ทั้งหมด และยังสามารถเปรียบเทียบประเภทหนึ่งกับประเภทอื่นเช่น xls v / s xlsx
na_ka_na

1
เครื่องมือที่ยอดเยี่ยม ... แต่มันบอกว่า "Diff failed: ไม่สามารถอ่านเป็นไฟล์ excel:" สำหรับไฟล์ xls ที่ใช้ได้บางตัว สำหรับทุกคนที่กำลังมองหาทางเลือก (ด้อยกว่าจากมุมมองอื่น ๆ ทั้งหมด): ดูgithub.com/toobaz/xlrd_diff
Pietro Battiston

2
@PietroBattiston กรุณาเข้าสู่ระบบตั๋วใน github และฉันจะดูมัน
na_ka_na

@na_ka_na ขอบคุณที่สร้างเครื่องมือนี้!
jgpawletko

111

รวดเร็วและง่ายดายโดยไม่มีเครื่องมือภายนอกทำงานได้ดีตราบใดที่แผ่นงานสองแผ่นที่คุณเปรียบเทียบมีลักษณะใกล้เคียงกัน:

  • สร้างสเปรดชีตที่สาม
  • พิมพ์=if(Sheet1!A1 <> Sheet2!A1, "X", "")เซลล์ด้านบนซ้าย (หรือเทียบเท่า: คลิกที่เซลล์จริงเพื่อแทรกการอ้างอิงลงในสูตรโดยอัตโนมัติ)
  • Ctrl+C(คัดลอก), Ctrl+A(เลือกทั้งหมด), Ctrl+V(วาง) เพื่อเติมแผ่นงาน

หากแผ่นงานมีลักษณะคล้ายกันสเปรดชีตนี้จะว่างเปล่ายกเว้นเซลล์เพียงไม่กี่ตัวที่มี X อยู่โดยจะเน้นความแตกต่าง เปิดใช้งาน 40% เพื่อดูสิ่งที่แตกต่างอย่างรวดเร็ว


6
สิ่งนี้ไม่ได้เกิดจากการเปรียบเทียบเซลล์หรือไม่ ฉันหมายความว่าถ้าด้านซ้ายมีแถวพิเศษหนึ่งแถวที่ด้านบนมันจะทำให้แถวที่เหลือทั้งหมด (และเซลล์) แตกต่างกัน หากเป็นเช่นนั้นแสดงว่าไม่มีประโยชน์มาก
Hammad Khan

1
@Thecrocodilehunter: คุณสามารถลบแถวนั้นที่ด้านบนแล้วเปรียบเทียบส่วนที่เหลือ หากความแตกต่างมีความซับซ้อนมากขึ้นแน่นอนว่าคุณต้องใช้เครื่องมืออื่น สิ่งนี้มีประโยชน์สำหรับการเปรียบเทียบแบบครั้งเดียวอย่างรวดเร็วเช่นเมื่อ Excel แจ้งว่าคุณเปลี่ยนสเปรดชีตและคุณกลัวว่าคุณจะแก้ไขฟิลด์โดยไม่ตั้งใจ
iconoclast

1
ฉันชอบอันนี้ แทนที่จะทำ X คุณสามารถทำ "1" และมี SUM เป็นแถว & คอลัมน์แรก เพิ่มส้มบนฟิลด์แรกและคุณจะเห็นจำนวนฟิลด์ที่แตกต่างกันอย่างรวดเร็ว
Konerak

5
ฉันเปลี่ยนสูตรเล็กน้อยดังนั้นฉันไม่ต้องไปดูว่าความแตกต่างที่แน่นอนคืออะไร = IF (Sheet1! A1 <> Sheet2! A1, CONCATENATE ("Sheet 1 =", Sheet1! A1, "Sheet 2 =", Sheet2! A1), "")
Martyn

1
=Sheet1!A1=Sheet2!A1คุณก็สามารถพิมพ์ สิ่งนี้จะพิมพ์ TRUE หรือ FALSE จากนั้นคุณสามารถทำการจัดรูปแบบตามเงื่อนไข=countif(A1:B2, FALSE)หรือสิ่งที่คล้ายกัน
user2023861

12

ฉันได้ทำการเปรียบเทียบเวิร์กบุ๊ก Excel มาหลายครั้งในอดีต เทคนิคของฉันใช้งานได้ดีกับเวิร์กบุ๊กที่มีแผ่นงานหลายแผ่น แต่มันเปรียบเทียบเนื้อหาของเซลล์เท่านั้นไม่ใช่การจัดรูปแบบเซลล์แมโครและอื่น ๆ นอกจากนี้ยังมีการเข้ารหัสที่เกี่ยวข้อง แต่คุ้มค่าถ้าคุณต้องเปรียบเทียบไฟล์ขนาดใหญ่ซ้ำ ๆ นี่คือวิธีการทำงาน:

A) เขียนโปรแกรมดัมพ์อย่างง่ายที่ทำตามเวิร์กชีตทั้งหมดและบันทึกข้อมูลทั้งหมดเป็นไฟล์ที่คั่นด้วยแท็บ สร้างหนึ่งไฟล์ต่อแผ่นงาน (ใช้ชื่อแผ่นงานเป็นชื่อไฟล์เช่น "MyWorksheet.tsv") และสร้างโฟลเดอร์ใหม่สำหรับไฟล์เหล่านี้ทุกครั้งที่คุณเรียกใช้โปรแกรม ตั้งชื่อโฟลเดอร์หลังชื่อไฟล์ excel และเพิ่มการประทับเวลาเช่น "20080922-065412-MyExcelFile" ผมทำอย่างนี้ในชวาใช้ห้องสมุดที่เรียกว่าJExcelAPI มันค่อนข้างง่ายจริงๆ

B) เพิ่ม Windows shell extension เพื่อรันโปรแกรม Java ใหม่ของคุณจากขั้นตอน A เมื่อคลิกขวาที่ไฟล์ Excel ทำให้ง่ายต่อการรันโปรแกรมนี้ คุณต้อง Google วิธีการทำเช่นนี้ แต่มันเป็นเรื่องง่ายเหมือนการเขียนไฟล์ * .reg

C) รับBeyondCompare มันมีคุณสมบัติเย็นมากในการเปรียบเทียบข้อมูลคั่นด้วยการแสดงในตารางที่ดี, ดูภาพหน้าจอ

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


12

คุณสามารถลองใช้เครื่องมือออนไลน์ฟรีนี้ - www.cloudyexcel.com/compare-excel/

มันให้ผลลัพธ์ที่ดีทางออนไลน์ในแง่ของแถวที่เพิ่มลบเปลี่ยนแปลง ฯลฯ

ป้อนคำอธิบายรูปภาพที่นี่

รวมทั้งคุณไม่ต้องติดตั้งอะไรเลย


น่าเศร้าที่ใช้งานได้กับไฟล์ <2MB เท่านั้น อย่างไรก็ตามมันสามารถทำงานกับคนอื่นได้
MikeVelazco

10

ฉันได้พบxdocdiff WinMerge ปลั๊กอิน มันเป็นปลั๊กอินสำหรับ WinMerge (ทั้งOpenSourceและฟรีแวร์ , คุณไม่จำเป็นต้องเขียน VBA หรือบันทึก excel ไปยัง csv หรือ xml) มันใช้งานได้เฉพาะกับเซลล์ที่มี

ปลั๊กอินนี้ยังรองรับ:

  • .rtf Rich Text
  • .docx / .docm Microsoft WORD 2007 (OOXML)
  • .xlsx / .xlsm Microsoft Excel 2007 (OOXML)
  • .pptx / .pptm Microsoft PowerPoint 2007 (OOXML)
  • .doc Microsoft WORD ver5.0 / 95/97/2000 / XP / 2003
  • .xls Microsoft Excel ver5.0 / 95/97/2000 / XP / 2003
  • .ppt Microsoft PowerPoint 97/2000 / XP / 2003
  • .sxw / .sxc / .sxi / .sxd OpenOffice.org
  • .odt / .ods / .odp / .odg เปิดเอกสาร
  • .wj2 / wj3 / wk3 / wk4 / 123 โลตัส 123
  • .wri Windows3.1 เขียน
  • .pdf Adobe PDF
  • .mht คลังเว็บ
  • .eml ส่งออกไฟล์จาก Outlook Express

คำนึงถึง Andres


1
น่าเสียดายที่มันไม่อนุญาตให้บันทึกการเปลี่ยนแปลงไปยังไฟล์ที่ไม่ได้แพ็กดังนั้นจึงไม่มีประโยชน์สำหรับการรวม มันฟรีแม้ว่า
Sogger

6

อืมม จากเมนู Excel เลือกหน้าต่าง -> เปรียบเทียบแบบเคียงข้างกัน?


+1 ทำงานได้ดี แต่ไม่เน้นความแตกต่างใน office 2007 ฉันเดาว่าเป็นรุ่นเก่ากว่า ยังดีมากสำหรับการเปรียบเทียบด้วยภาพ
Hammad Khan

2
ใช่ไม่มีการเน้นดังนั้นผลประโยชน์อย่างเดียวคือการเลื่อนแบบซิงโครนัส
Sogger

5

คุณใช้ TortoiseSVN ในการทำคอมมิทและอัพเดตในเวอร์ชั่นย่อยหรือไม่? มันมีเครื่องมือต่าง ๆ แต่การเปรียบเทียบไฟล์ Excel ยังไม่เป็นมิตรกับผู้ใช้ ในสภาพแวดล้อมของฉัน (Win XP, Office 2007) มันเปิดไฟล์ excel สองไฟล์สำหรับการเปรียบเทียบแบบเคียงข้างกัน

คลิกขวาที่เอกสาร> Tortoise SVN> Show Log> select revision> คลิกขวาสำหรับ "Compare with working copy"


4

MS Office เวอร์ชันที่ใหม่กว่ามาพร้อมกับสเปรดชีตการเปรียบเทียบซึ่งมีประสิทธิภาพที่ดีใน GUI ตรวจจับการเปลี่ยนแปลงเกือบทุกชนิด


แม้ว่าคำตอบนี้อาจจะไม่ช่วยสถานการณ์ของ OP ด้วยการdiffผสานบรรทัดคำสั่งเครื่องมือเปรียบเทียบสเปรดชีตนี้เหมาะสำหรับวัตถุประสงค์ของฉัน (การตรวจสอบความแตกต่างระหว่างเอาต์พุตอัตโนมัติ OpenXML เทียบกับ Excel อัตโนมัติ Automation COM)
ErrCode

หมายเหตุ: ฉันพยายามตรวจสอบระบบอัตโนมัติโดยใช้เครื่องมือนี้ แต่มันก็ไม่ได้ผลสำหรับฉัน (เครื่องมือเพิ่งหยุดทำงาน): stackoverflow.com/a/35905262/7270462
ErrCode

4

มีไลบรารีdaff (ย่อมาจาก data diff) ซึ่งช่วยในการเปรียบเทียบตารางสร้างการสรุปของ diffs และใช้การสรุปเช่นไฟล์แพทช์

มันเขียนใน Haxe ดังนั้นจึงสามารถรวบรวมเป็นภาษาหลักได้

ฉันสร้างExcel Diff Toolใน Javascript ด้วยความช่วยเหลือของห้องสมุดนี้ มันทำงานได้ดีกับตัวเลขและสตริงเล็ก ๆ แต่เอาต์พุตไม่เหมาะสำหรับสตริงที่ยาว (เช่นประโยคยาวที่มีการเปลี่ยนอักขระเล็กน้อย)


3

ฉันรู้ว่ามีคำตอบหลายข้อที่แนะนำให้ส่งออกไฟล์ไปยัง csv หรือรูปแบบข้อความอื่น ๆ แล้วเปรียบเทียบกับมัน ฉันไม่ได้เห็นมันกล่าวถึงโดยเฉพาะ แต่นอกเหนือจากการเปรียบเทียบ 3 มีรูปแบบไฟล์เพิ่มเติมที่รองรับ ดูรูปแบบไฟล์เพิ่มเติม การใช้หนึ่งในรูปแบบไฟล์ Microsoft Excel คุณสามารถเปรียบเทียบสองไฟล์ Excel ได้อย่างง่ายดายโดยไม่ต้องผ่านการส่งออกไปยังตัวเลือกรูปแบบอื่น


2

ฉันจะใช้รูปแบบไฟล์ SYLK หากการดำเนินการ diffs สำคัญ มันเป็นรูปแบบข้อความตามซึ่งจะทำให้การเปรียบเทียบง่ายขึ้นและมีขนาดกะทัดรัดกว่ารูปแบบไบนารี มันเข้ากันได้กับ Excel, Gnumeric และ OpenOffice.org ด้วยดังนั้นเครื่องมือทั้งสามควรจะทำงานร่วมกันได้ดี SYLK บทความ Wikipedia


นี่เป็นวิธีแก้ไขปัญหาที่ดีมากควรใช้เป็นแนวทางปฏิบัติทั่วไปในสภาพแวดล้อมที่มักใช้ git กับไฟล์ Excel (และไฟล์อื่น ๆ ) แน่นอนว่ามันเป็นมิตร "git" (แม้ว่า diffs จะไม่ใช่แบบมนุษย์ทั่วไปที่อ่านได้) และไม่ต้องการเครื่องมือเพิ่มเติมใด ๆ นอกเหนือจาก Excel "สมัยใหม่" (ตอนนี้คือ 2019) นอกจากนี้ยังเป็น "สองทาง" ซึ่งหมายความว่าผู้ใช้รายอื่นสามารถบันทึกสเปรดชีต Excel ของพวกเขาในรูปแบบ. slk (SYLK) จากนั้นพวกเขาเปิดด้วยการจัดรูปแบบที่เหมาะสม ฯลฯ ใน Excel เมื่อจำเป็น
D. Woods

2

ใช้Altova DiffDog

ใช้โหมด diff diff ของ XML และ Grid View เพื่อดูความแตกต่างในรูปแบบตารางที่อ่านง่าย การกระจายข้อความเป็นสิ่งที่ยากมากสำหรับสเปรดชีตที่มีความซับซ้อนใด ๆ ด้วยเครื่องมือนี้อย่างน้อยสองวิธีสามารถทำงานได้ภายใต้สถานการณ์ต่าง ๆ

  1. บันทึกเป็น. xml

    หากต้องการตรวจสอบความแตกต่างของสเปรดชีตแบบแผ่นเดียวให้บันทึกสเปรดชีต Excel เพื่อเปรียบเทียบเป็นสเปรดชีต XML ที่มีนามสกุล. xml

  2. บันทึกเป็น. xlsx

    เมื่อต้องการตรวจสอบความแตกต่างของสเปรดชีตส่วนใหญ่ในรูปแบบเอกสารที่ทำให้เป็นโมดูลให้บันทึกสเปรดชีต Excel เพื่อเปรียบเทียบเป็นเวิร์กบุ๊ก Excel ในรูปแบบ. xlsx เปิดไฟล์เพื่อกระจายด้วย diffdog มันแจ้งให้คุณทราบว่าไฟล์นั้นเป็นไฟล์ ZIP และถามว่าคุณต้องการเปิดมันสำหรับการเปรียบเทียบไดเรกทอรีหรือไม่ เมื่อยอมรับการเปรียบเทียบไดเรกทอรีมันจะกลายเป็นเรื่องง่าย ๆ ของการดับเบิลคลิกส่วนโลจิคัลของเอกสารเพื่อกระจายพวกมัน (ด้วยโหมด XML diff) ส่วนใหญ่ของเอกสาร. xslx เป็นข้อมูลที่จัดรูปแบบ XML มุมมองกริดมีประโยชน์อย่างยิ่ง มันเป็นเรื่องไม่สำคัญที่จะทำให้แต่ละแผ่นแตกต่างกันเพื่อมุ่งเน้นการวิเคราะห์ในพื้นที่ที่รู้กันว่ามีการเปลี่ยนแปลง

ความโน้มเอียงของ Excel ในการปรับแต่งชื่อแอตทริบิวต์บางอย่างด้วยการบันทึกทุกครั้งเป็นเรื่องน่ารำคาญ แต่ความสามารถในการกระจาย XML ของ diffdog นั้นรวมถึงความสามารถในการกรองความแตกต่างบางประเภท ตัวอย่างเช่น Excel สเปรดชีตในรูปแบบ XML ประกอบด้วยrowและcองค์ประกอบที่มีsคุณลักษณะ (สไตล์) ที่เปลี่ยนชื่อทุกการบันทึก การตั้งค่าตัวกรองเช่นc:sทำให้ง่ายต่อการดูการเปลี่ยนแปลงเนื้อหาเท่านั้น

diffdog มีความสามารถในการกระจายมาก ฉันแสดงโหมด XML diff เพียงเพราะฉันไม่ได้ใช้เครื่องมืออื่นที่ฉันชอบดีกว่าเมื่อพูดถึงเอกสาร Excel ที่แตกต่างกัน


1

ฉันพบมาโคร openoffice ที่นี่ที่จะเรียกใช้ฟังก์ชั่นเปรียบเทียบเอกสารของ openoffice ในสองไฟล์ น่าเสียดายที่การเปรียบเทียบสเปรดชีตของ openoffice นั้นดูไม่เรียบนัก ฉันเพิ่งได้ปุ่ม 'ปฏิเสธทั้งหมด' แทรกคอลัมน์ที่ไม่จำเป็นในเอกสารของฉัน


1

ปลั๊กอิน xdocdiff สำหรับ SVN


xdocdiff ดูดี แต่ดูเหมือนว่าต้องใช้ TortioseSVN
neu242

xdocdiff ยังมีปลั๊กอิน WinMerge ซึ่งทั้งสองอย่างใช้ xdoc2txt ที่อยู่เบื้องหลัง
Sogger

1

หากคุณกำลังใช้ Java คุณอาจจะลองง่าย Excel

มันจะกระจายสเปรดชีตโดยใช้ Hamcrest matchers และให้ผลลัพธ์เช่นนี้

java.lang.AssertionError:
Expected: entire workbook to be equal
     but: cell at "C14" contained <"bananas"> expected <nothing>,
          cell at "C15" contained <"1,850,000 EUR"> expected <"1,850,000.00 EUR">,
          cell at "D16" contained <nothing> expected <"Tue Sep 04 06:30:00">
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)

ฉันควรมีคุณสมบัติที่เราเขียนเครื่องมือนั้น (เช่นคำตอบที่ถูกขีดถูกรีดด้วยตนเอง)


2
ขอบคุณสำหรับการโพสต์คำตอบของคุณ! โปรดอ่านคำถามที่พบบ่อยเกี่ยวกับการส่งเสริมตนเองอย่างรอบคอบ นอกจากนี้โปรดทราบว่าคุณจำเป็นต้องโพสต์ข้อจำกัดความรับผิดชอบทุกครั้งที่คุณเชื่อมโยงไปยังเว็บไซต์ / ผลิตภัณฑ์ของคุณเอง
Andrew Barber

1

หากคุณมี TortoiseSVN คุณสามารถCTRLคลิกสองไฟล์เพื่อเลือกใน Windows Explorer จากนั้นคลิกขวาที่ TortoiseSVN-> Diff

วิธีนี้ใช้งานได้ดีโดยเฉพาะหากคุณกำลังมองหาการเปลี่ยนแปลงเล็กน้อยในชุดข้อมูลขนาดใหญ่


สิ่งนี้ใช้งานไม่ได้เป็นพิเศษอย่างไรก็ตามสำหรับไฟล์ไบนารีเช่นรูปแบบ XLS ของ Excel
Charles Wood

1
@CharlesWood - จริงๆแล้วมันไม่ทำงานโดยเฉพาะอย่างยิ่ง Tortoise ใช้ Excel เพื่อจัดทำ diff และเน้นเซลล์ที่แตกต่างเป็นสีแดง ฉันไม่ได้ลองเลย แต่ฉันก็ค่อนข้างแน่ใจว่ามันก็ทำเหมือนกันสำหรับไฟล์ Word .doc และ. docx (ใช้ Word ที่เป็นตัวแสดง diff)
Chris B

Whaaat! ฉันไม่ทำอย่างนั้น มันเป็นคุณสมบัติใหม่หรือคุณติดตั้งปลั๊กอินหรือไม่
Charles Wood

:-D ฉันได้รับ TortoiseSVN 1.7.12 แล้วมันก็ออกนอกกรอบ แฟ้มความช่วยเหลือระบุว่ามีการสนับสนุนนี้ - tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-diff.html มันใช้สคริปต์เพื่อกระจายไฟล์ที่อยู่ในเครื่องของฉันคือ C: \ Program Files \ TortoiseSVN \ Diff-Scripts \ diff-xls.js เป็นไปได้หรือไม่ที่คุณมีนโยบายกลุ่มในเครื่องที่ปิดใช้งานการเขียนสคริปต์
Chris B

1

ฉันมีปัญหาอย่างคุณดังนั้นฉันตัดสินใจที่จะเขียนเครื่องมือขนาดเล็กเพื่อช่วยฉันออก กรุณาตรวจสอบExcelDiff_Tools มันมาพร้อมกับประเด็นสำคัญหลายประการ:

  • สนับสนุน xls, xlsx, xlsm
  • ด้วยสูตรเซลล์ มันจะเปรียบเทียบทั้งสูตรและค่า
  • ฉันพยายามทำให้ UI ดูเหมือนตัวแสดงข้อความ diff มาตรฐานด้วย: แก้ไขลบเพิ่มเพิ่มไม่เปลี่ยนแปลงสถานะ โปรดดูตัวอย่างด้านล่าง: ป้อนคำอธิบายรูปภาพที่นี่


0

Diff Docอาจเป็นสิ่งที่คุณกำลังมองหา

  • เปรียบเทียบเอกสารของ MS Word (DOC, DOCX ฯลฯ ), Excel, PDF, Rich Text (RTF), ข้อความ, HTML, XML, PowerPoint หรือ Wordperfect และรักษารูปแบบ
  • เลือกส่วนใด ๆ ของเอกสาร (ไฟล์) และเปรียบเทียบกับส่วนใด ๆ ของเอกสารเดียวกันหรือต่างกัน (ไฟล์)

2
Diff Doc เป็น Windows เท่านั้นและเป็นแหล่งปิดมันไม่ตรงกับความต้องการของฉัน
neu242

0

ฉันไม่รู้เกี่ยวกับเครื่องมือใด ๆ แต่มีโซลูชันสองม้วนที่คุณนึกถึงซึ่งทั้งคู่ต้องการ Excel:

  1. คุณสามารถเขียนรหัส VBA บางขั้นตอนที่ผ่านแต่ละแผ่นงานแถวคอลัมน์และเซลล์ของสมุดงานสองรายการรายงานความแตกต่าง

  2. หากคุณใช้ Excel 2007 คุณสามารถบันทึกรูปแบบเวิร์กบุ๊กเป็น Open-XML (* .xlsx) แยก XML และ diff ไฟล์ Open-XML เป็นเพียงไฟล์. zip ของไฟล์. xml และรายการ

คุณจะพบกับ "เสียงรบกวน" จำนวนมากในทั้งสองกรณีหากสเปรดชีตของคุณไม่มีโครงสร้าง "ปิด" เพื่อเริ่มต้น


จาก Excel 2002 เป็นต้นไปคุณสามารถบันทึกในรูปแบบ 'สเปรดชีต XML' ซึ่งง่ายกว่าการจัดการกับไฟล์ xlsx
Sam Warwick

0

แปลงเป็น cvs จากนั้นอัปโหลดไปยังระบบควบคุมเวอร์ชันจากนั้นแตกต่างด้วยเครื่องมือ diff version control ขั้นสูง เมื่อฉันใช้การบังคับมันมีเครื่องมือต่าง ๆ ที่ยอดเยี่ยม แต่ฉันลืมชื่อของมัน

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