2013-06-27 53 views
7

Ai đó có thể giúp tôi hiểu các chuỗi chia sẻ trong MS Excel không? Tôi đã cố gắng hiểu bằng cách sử dụng một số blog nhưng không thể có được ý tưởng hoàn chỉnh. Mọi người đều giải thích cách truy cập Shared String bằng cách sử dụng Open XML và nơi các chuỗi chia sẻ được lưu trữ (như sharedstrings.xml). Việc truy cập bằng API là tốt. Nhưng,Các chuỗi được chia sẻ trong Excel 2010

  1. Cách tạo chuỗi chia sẻ trong Excel. (Tạo thủ công trong EXCEL 2010, không sử dụng API)
  2. Nhu cầu chính xác của Chuỗi chia sẻ là gì?
  3. Trong trường hợp nào tôi có thể sử dụng Shared Strings?

Tôi đã thử theo dõi.

http://www.sadev.co.za/content/reading-and-writing-excel-2007-or-excel-2010-c-part-iii-shared-strings

http://msdn.microsoft.com/en-us/library/gg278314.aspx

Trả lời

10

chuỗi chung về cơ bản là một cơ chế tiết kiệm không gian. Đối với câu hỏi của bạn:

A1. Bạn không thể tạo chuỗi được chia sẻ theo cách thủ công bằng giao diện người dùng Excel. Đó là vì Excel theo mặc định luôn lưu trữ bất kỳ văn bản nào dưới dạng chuỗi được chia sẻ.

A2. Như đã đề cập, đó là một cơ chế tiết kiệm không gian. Excel 2007/2010/2013 sử dụng định dạng Open XML, về cơ bản là một loạt các tệp XML được nén lại với nhau. Nó cũng có thể dễ dàng tham khảo. Bạn chỉ cần tham khảo một chỉ mục, giống như bạn tham chiếu đến một chỉ mục của một chuỗi các chuỗi. (Nhưng XML vốn đã tiết lộ, vì vậy tôi nghi ngờ nó là dành cho mục đích tiết kiệm không gian).

Giả sử bạn có văn bản "Đây là chuỗi rất dài" trong ô A1 của trang tính "FirstSheet". Giả sử bạn cũng có cùng một văn bản trong ô B7 của trang tính "SecondSheet". Excel lưu trữ "Đây là một văn bản rất dài" trong bảng chuỗi chia sẻ dưới dạng một mục nhập, nói chỉ mục 5. Trong ô "FirstSheet" A1, ô Lớp SDK XML mở sẽ chỉ chứa "5" làm CellValue. Trong ô "SecondSheet" B7, ô Lớp SDK cũng sẽ chứa "5".

Về cơ bản, CellValue chỉ giữ chỉ mục vào bảng chuỗi được chia sẻ. Đây là cách bạn tiết kiệm không gian. Giả định là văn bản được nhân đôi trong bảng tính cũng như trên các trang tính khác nhau.

A3. Đi cho chuỗi chia sẻ nếu bạn hiểu làm thế nào để làm cho nó hoạt động. Nếu không, chỉ cần thiết lập các văn bản thực tế trong lớp Cell cho CellValue (Cell.DataType như CellValues.String thay vì CellValues.SharedString).

+0

Tuyệt vời !!! Hiểu rồi. Đây là những gì tôi đang tìm kiếm. Có ý tưởng hay. Cảm ơn một tấn cho lời giải thích của bạn – Santhosh