Tabela wspólnych ciągów Microsoft Excel
Tabela wspólnych ciągów jest zgodna ze standardem Open XML, zgodnie z definicją normy ISO - ISO / IEC 29500-1: 2016 (E)
Oficjalna definicja wspólnych ciągów (cytowana z dokumentu ISO)
Wspólna tabela ciągów
Wartości ciągów mogą być przechowywane bezpośrednio w elementach komórki arkusza kalkulacyjnego; jednak przechowywanie tej samej wartości w wielu elementach komórki może skutkować bardzo dużymi częściami arkusza roboczego, co może skutkować pogorszeniem wydajności. Shared String Table to zindeksowana lista wartości ciągów, wspólna dla skoroszytu, która umożliwia implementacjom przechowywanie wartości tylko raz.
Standard ISO dotyczący wspólnych ciągów można pobrać z
https://standards.iso.org/ittf/PubliclyAvailableStandards/c071691_ISO_IEC_29500-1_2016.zip
Odpowiedzi na pytania na ten temat
Pytanie 1: Czy współużytkowane ciągi są używane w samej aplikacji Excel, czy tylko podczas zapisywania danych?
Odpowiedź:
Udostępnione ciągi są używane przez program Excel tylko podczas zapisywania dokumentu, IE, tylko w celu przechowywania arkusza kalkulacyjnego jako pliku na dysku.
Jednak po otwarciu pliku do wyświetlenia komórki zapełniane są rzeczywistymi wartościami ciągów pobranymi z tabeli wspólnych ciągów.
-
Pytanie 2: Jaki byłby wówczas przykładowy algorytm do sortowania na polu? Każdy język jest w porządku (c, c #, c ++, python).
Odpowiedź:
W przypadku aplikacji takich jak Excel wydaje mi się, że specjalna zastrzeżona odmiana
szybkiego sortowania jest najbardziej prawdopodobnym algorytmem do sortowania według wartości ciągu.
Program Excel ma limit 1 048 576 wierszy. W przypadku tego rozmiaru szybkie sortowanie jest zdecydowanie zwycięzcą. Szybkie sortowanie może dać bardzo wydajny wynik dla zestawu danych tej wielkości.
Oto link do implementacji szybkiego sortowania w C ++ do sortowania ciągów:
http://www.cplusplus.com/forum/beginner/101599/