![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(C) XLSX Convert Sheet to CSVOpen an Excel spreadsheet (.xlsx) and loads a sheet into a CSV object. Note: This example requires Chilkat v11.3.0 or greater.
#include <C_CkZip.h> #include <C_CkCsv.h> #include <C_CkStringTable.h> void ChilkatSample(void) { BOOL success; HCkZip zip; HCkCsv csv; HCkStringTable sheetNames; const char *sheetName; const char *csvStr; success = FALSE; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // .xlsx files are Zip archives zip = CkZip_Create(); success = CkZip_OpenZip(zip,"qa_data/excel/fakeCompanies.xlsx"); if (success == FALSE) { printf("%s\n",CkZip_lastErrorText(zip)); CkZip_Dispose(zip); return; } csv = CkCsv_Create(); sheetNames = CkStringTable_Create(); success = CkCsv_XlsxGetSheets(csv,zip,sheetNames); if (success == FALSE) { printf("%s\n",CkCsv_lastErrorText(csv)); CkZip_Dispose(zip); CkCsv_Dispose(csv); CkStringTable_Dispose(sheetNames); return; } if (CkStringTable_getCount(sheetNames) == 0) { printf("There are no sheets in the .xlsx\n"); CkZip_Dispose(zip); CkCsv_Dispose(csv); CkStringTable_Dispose(sheetNames); return; } // Get the name of the 1st sheet. sheetName = CkStringTable_stringAt(sheetNames,0); // Load the 1st sheet into the CSV. // We could've also loaded the 1st sheet by passing an empty string for the sheet name. success = CkCsv_XlsxLoadSheet(csv,zip,sheetName); if (success == FALSE) { printf("%s\n",CkZip_lastErrorText(zip)); CkZip_Dispose(zip); CkCsv_Dispose(csv); CkStringTable_Dispose(sheetNames); return; } // The Chilkat CSV API can now be used to read, modify, or insert cells. // ... // ... csvStr = CkCsv_saveToString(csv); printf("%s\n",csvStr); // Sample output: // CompanyName,Address,City,State,Zip,Phone // Acme Innovations LLC,7428 Westbrook Blvd,Oak Bend,IL,60514,630-555-2398 // BlueHorizon Data Systems,1850 Crestline Park Suite 210,Rivergate,CA,92814,714-555-8821 // Pinnacle Manufacturing Corp,3912 Industrial Loop,Maple Ridge,TX,77301,281-555-4477 // Evergreen Analytics Inc,1250 Highland Terrace,Stonefield,WA,98290,425-555-9914 // NovaTech Solutions Group,578 Marketview Drive,Clearwater,FL,33760,727-555-6032 // Save to a .csv file. success = CkCsv_SaveFile2(csv,"c:/temp/qa_output/fakeCompanies.csv","utf-8"); if (success == FALSE) { printf("%s\n",CkCsv_lastErrorText(csv)); CkZip_Dispose(zip); CkCsv_Dispose(csv); CkStringTable_Dispose(sheetNames); return; } CkZip_Dispose(zip); CkCsv_Dispose(csv); CkStringTable_Dispose(sheetNames); } |
||||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.