English 中文(简体)
Why do most spreadsheets contain a hard-coded limit on the number of rows and columns?
原标题:

Why are programs like Microsoft Excel, Gnumeric and OpenOffice.org Calc designed with hard-coded limits on the number of rows and columns? This seems like an archaic programming technique from when spreadsheets were considered a demanding application and dynamic memory allocation was considered "high-end". I would guess that it indicates that some resource is being statically allocated, with the assumption that "noone will ever need more than that", thus introducing a very arbitrary limitation into the application. What is the logic behind it?

Note: I know some people are going to argue that this question isn t programming related. Here s a preemptive rebuttal: This question is programming-related because it s asking why a pervasive and seemingly obsolete programming methodology is used.

问题回答

The original reason was for performance and space, because (for instance) handling 65536 rows only requires two bytes. These historic reasons have gone with Office 2007 (if not the others as well), so your question is also obsolete.

Because it s way easier to handle cell references as a pair of indexes and they end up having a limit?

In short, there will be a limit no matter what you do, the question is just what will it be, what will it cost to make it that and how many people will run into it?

Next Gnumeric version will allow much larger sheets, up to 8M rows and 8k columns. Just if you really need such large sheets, buy some TBytes of RAM.

In Excel97 biff record,column is stored as 0xff number,row is stored as 0xFFFF numner. So it limite the col to 255 and the row to 65535,if you want to save more rows/cols in Excel2003(if it is support in IDE),it will not be saved.





相关问题
Windows Mobile 6 Emulator change storage?

How do i change the size of the Windows Mobile 6 Emulator. Its fixed at 32mb. I read this post: Increasing Windows Mobile 5 Emulator Storage But it only helps for the 5.0 version. Isnt there any way ...

CUDA Memory Allocation accessible for both host and device

I m trying to figure out a way to allocate a block of memory that is accessible by both the host (CPU) and device (GPU). Other than using cudaHostAlloc() function to allocate page-locked memory that ...

RAM memory reallocation - Windows and Linux

I am working on a project involving optimizing energy consumption within a system. Part of that project consists in allocating RAM memory based on locality, that is allocating memory segments for a ...

Should I send retain or autorelease before returning objects?

I thought I was doing the right thing here but I get several warnings from the Build and Analyze so now I m not so sure. My assumption is (a) that an object I get from a function (dateFromComponents: ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

doubts regarding Memory management in .net

I m learning about Memory management in C# from the book "Professional C#" The presence of the garbage collector means that you will usually not worry about objects that you no longer need; ...

Objective-C returning alloc d memory in a function == bad?

This is on the iPhone. So what if I have a function like - (SomeObject*)buildObject; Do I need to pass in a variable that I have already alloc d outside like - (void)assignObject(SomeObject** out);...

热门标签