Come le versioni di Excel ha scritto una cartella di lavoro

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 225029
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sommario
In questo articolo viene spiegato come determinare la versione di Microsoft Excel in cui è stata creata una data cartella di lavoro.
Informazioni
Microsoft Excel salva i dati utilizzando archiviazione strutturata. In particolare viene creato un flusso di dati denominato "Cartella di lavoro" (in precedenza semplicemente "Cartella") in cui viene salvato il contenuto a partire da un record BOF (Beginning of File, inizio del file). Questo record contiene attributi utili della cartella di lavoro, come la versione. Con il codice Microsoft Visual C++ riportato sotto si dimostra come aprire un file, leggerlo e restituire il numero di versione basato sul BOF:
  1. Creare una nuova applicazione console Win32 in Microsoft Developer Studio e denominarla XlVer.
  2. Aggiungere un file di origine c ++ (CPP) al progetto e aggiungere il codice riportato di seguito il file di origine:
       #include <windows.h>   #include <stdio.h>   int XLVersionThatWroteFile(char *filename) {      // Translate filename to Unicode      WCHAR wcFilename[1024];      int i = mbstowcs(wcFilename, filename, strlen(filename));      wcFilename[i] = 0;      // Open the document as an OLE compound document      IStorage *pStorage;      HRESULT hr;      hr = ::StgOpenStorage(wcFilename, NULL,                 STGM_READ | STGM_SHARE_EXCLUSIVE, NULL, 0, &pStorage);      if(FAILED(hr)) return 0;      // Open the data-stream where Microsoft Excel stores the data      IStream *pStream;      hr = pStorage->OpenStream(L"Workbook", NULL,         STGM_READ | STGM_SHARE_EXCLUSIVE, 0, &pStream);      // If "Workbook" does not exist, try "Book"      if(FAILED(hr)) {         hr = pStorage->OpenStream(L"Book", NULL,              STGM_READ | STGM_SHARE_EXCLUSIVE, 0, &pStream);      }      if(FAILED(hr)) {         pStorage->Release();         return 0;      }      // Get rupBuild & rupYear      short rupBuild, rupYear;      LARGE_INTEGER off;      ULARGE_INTEGER newPos;      off.QuadPart = 8;      pStream->Seek(off, STREAM_SEEK_SET, &newPos);      DWORD bytesRead;      pStream->Read(&rupBuild, 2, &bytesRead);      pStream->Read(&rupYear, 2, &bytesRead);      // Let go of the IStorage pointer      pStorage->Release();      // Excel 8.0's rupyear = 1996      if(rupYear == 1996) return 8;      // Excel 9.0 comes after Excel 8.0...      if(rupYear > 1996) return 9;      // Excel 5.0's rupyear < 1994      if(         (rupYear < 1994) ||         // Excel 5.0 & 7.0 have rupYear=1994 for some versions...         (rupBuild == 2412) || (rupBuild == 3218) || (rupBuild == 3321)      ) return 5;      // All that's left is Excel 7.0      return 7;   }   void main(int argc, char **argv) {      if(argc != 2) {         printf("Usage: XLVER filename.xls");      }      else {         printf("Excel version = %d", XLVersionThatWroteFile(argv[1]));      }   }					
  3. Compilare il progetto, quindi cercare un file xls nel computer ed eseguire il programma come segue:

    XlVer.exe myfile.x
Riferimenti
Per ulteriori informazioni, vedere il seguente articolo della Microsoft Knowledge Base riportato di seguito:

178605 How To Determine the Version of a Microsoft Excel Workbook

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 225029 - Ultima revisione: 12/05/2015 13:50:35 - Revisione: 4.5

Microsoft Excel 2000 Standard Edition, Microsoft Excel 2002 Standard Edition, Microsoft Excel 97 Standard Edition, Microsoft Excel 5.0 Standard Edition, Microsoft Excel 95 Standard Edition

  • kbnosurvey kbarchive kbmt kbhowto KB225029 KbMtit
Feedback