สคริปต์ Perl ไปยัง Hyperlink เพื่อเปิดไฟล์ตามชื่อไฟล์ในแต่ละเซลล์

ฉันได้พัฒนาสคริปต์ Perl เพื่อค้นหาสตริงที่ตรงกันจากไฟล์ข้อความและคัดลอกลงในสเปรดชีต ฉันยังได้รวมชื่อไฟล์ข้อความลงในสเปรดชีตสำหรับสตริงที่ตรงกันด้วย ตอนนี้ฉันต้องการไฮเปอร์ลิงก์เพื่อเปิดไฟล์โดยคลิกชื่อไฟล์ในแต่ละเซลล์

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก! ฉันไม่ใช่โปรแกรมเมอร์สักหน่อย... ขอบคุณ!


person rocketman2698    schedule 29.01.2013    source แหล่งที่มา
comment
คุณกำลังจัดการกับรูปแบบสเปรดชีตรูปแบบใด   -  person Borodin    schedule 29.01.2013
comment
ฉันกำลังจัดการกับสเปรดชีตใน openoffice.org บนเครื่อง linux (CentOS 5.6)   -  person rocketman2698    schedule 29.01.2013
comment
lib ใดที่คุณใช้ในการเขียนสเปรดชีต   -  person StarPinkER    schedule 29.01.2013
comment
ฉันใช้โมดูล Spreadsheet::WriteExcel เพื่อเชื่อมต่อกับสมุดงาน Excel ใหม่   -  person rocketman2698    schedule 29.01.2013


คำตอบ (1)


นี่คือตัวอย่างบางส่วนโดยใช้ Spreadsheet::WriteExcel

# External link to a local file
$worksheet->write('B2', 'external:Italy.xls');

# External link to a local file with worksheet
$worksheet->write('B3', 'external:Italy.xls#Sales!B3');

# External link to a local file with worksheet and alternative string
$worksheet->write('B4', 'external:Italy.xls#Sales!B4', 'Link');

# External link to a local file with worksheet and format
$worksheet->write('B5', 'external:Italy.xls#Sales!B5', $format);

# External link to a remote file, absolute path
$worksheet->write('B6', 'external:c:/Temp/Asia/China.xls');

# External link to a remote file, relative path
$worksheet->write('B7', 'external:../Asia/China.xls');

# External link to a remote file with worksheet
$worksheet->write('B8', 'external:c:/Temp/Asia/China.xls#Sales!B8');

# External link to a remote file with worksheet (with spaces in the name)
$worksheet->write('B9', q{external:c:/Temp/Asia/China.xls#'Product Data'!B9});

คุณสามารถดู เขียน API เพื่อดูข้อมูลเพิ่มเติม

person StarPinkER    schedule 29.01.2013
comment
ขอบคุณ..ตัวอย่างข้างต้นที่ดีในการจัดการกับเซลล์แต่ละเซลล์เพื่อเปิดไฟล์ภายนอก เนื่องจากฉันต้องจัดการกับไฟล์มากกว่า 200 ไฟล์ ฉันจึงกำลังมองหากระบวนการอัตโนมัติเพิ่มเติม ด้านล่างนี้เป็นตัวอย่างรูปแบบสเปรดชีต.. (เซลล์ ColumnA ColumnB ถูกแยกออกจากชื่อไฟล์ใน columnC) ColumnA ColumnB ColumnC หนึ่ง ONE one.txt สอง สอง two.txt และอื่นๆ...ตอนนี้ฉันต้องการคลิกที่เซลล์ one.txt เพื่อ เปิดไฟล์จากไดเรกทอรีปัจจุบัน - person rocketman2698; 29.01.2013
comment
จากนั้นคุณจะต้องเพิ่มการวนซ้ำ และเพิ่มไฟล์มากกว่า 200 ไฟล์เหล่านั้นลงในสเปรดชีตของคุณโดยอัตโนมัติ - person StarPinkER; 29.01.2013
comment
ขอบคุณเจอร์เมนสำหรับความช่วยเหลือ ฉันสามารถเปิดไฟล์ด้วยตัวอย่างที่คุณแสดงไว้ข้างต้นได้ ฉันกำลังป้อนชื่อไฟล์โดยใช้สคริปต์ เนื่องจากมีชื่อไฟล์อยู่แล้วในคอลัมน์หนึ่งของสเปรดชีต ฉันจึงต้องการไฮเปอร์ลิงก์เซลล์ทั้งหมดในคอลัมน์นั้น ตัวอย่างเช่น ใน $worksheet-›write('B2', 'external:Italy.xls'); แทนที่จะเป็น 'external:Italy.xls' ฉันต้องการกำหนดชื่อไฟล์ไดนามิกให้กับเซลล์ - person rocketman2698; 30.01.2013
comment
คุณหมายความว่าคุณต้องแก้ไข Excel ที่มีอยู่หรือไม่? - person StarPinkER; 30.01.2013
comment
ไม่..ใน $worksheet->write('B2', 'external:Italy.xls') แทน (ชื่อไฟล์คงที่)Italy.xls ฉันต้องการเปิดไฟล์ที่มีชื่ออยู่แล้วในแผ่นงาน Excel ที่สร้างแบบฟอร์ม perl scipt . กล่าวโดยย่อคือคอลัมน์หนึ่งมีชื่อไฟล์ที่เขียนไว้แล้ว ฉันต้องการไฮเปอร์ลิงก์ - person rocketman2698; 01.02.2013
comment
ดังนั้นคุณจึงต้องการอ่านชื่อไฟล์จากคอลัมน์ไปเป็นตัวแปร X และแก้ไขคอลัมน์โดย $worksheet-›write('B2', 'external:X') ใช่ไหม? - person StarPinkER; 01.02.2013
comment
ขอบคุณ..ใช่ ฉันต้องการไฮเปอร์ลิงก์เซลล์ทั้งหมดในคอลัมน์ - person rocketman2698; 01.02.2013