LabWindowsCVI:保存エクセルカトンの問題解決への制御テーブル内のデータ(RPM)

その後、ファイル操作を使用し、大量のデータ(特に百万以上の行のテーブルコントロールはほとんどの最大数は、覚えていない)場合は、カトンの問題保存、表示されます応答しない場合は、あなたの中にExcelに制御テーブルのデータを保存し、データテーブルは、XLSまたはTXTのようにして格納されてすぐに発見、上記の問題は発生しません:
1)次のようにコードにExcelに直接保存:
 リバース(STRの、MYDATA、行); // // A1:線ZZ数  
 Excel_NewApp(NULL ,. 1、LOCALE_NEUTRAL、0、&ExcelAppHandle); //は、新しい新しいアプリケーションオブジェクトを作成し、オブジェクトへのハンドルを取得します。
 Excel_GetProperty(ExcelAppHandle、NULL、Excel_AppWorkbooks、CAVT_OBJHANDLE、&ExcelWorkbooksHandle);
 Excel_WorkbooksAdd(ExcelWorkbooksHandle、NULL、CA_DEFAULT_VAL 、&​​ExcelWorkbookHandle);
 Excel_GetProperty(ExcelAppHandle、NULL、Excel_AppSheets、CAVT_OBJHANDLE、&ExcelSheetsHandle);
 Excel_SheetsItem(ExcelSheetsHandle、NULL、CA_VariantInt(1)、&ExcelWorksheetHandle)。
 Excel_WorksheetActivate(ExcelWorksheetHandle、NULL); // STRS = >> A1:列数(列标识ZZ)行数  
 ExcelRpt_WriteDataFromTableControl(ExcelWorksheetHandle、STRS、hTablePanel、TABLE_DISTABLE)。テーブルコントロールから//書き込みデータ
 ExcelRpt_WorkbookSave(ExcelWorkbookHandle、sheetSavePath、ExRConst_DefaultFileFormat)。// ExRConst_Excel2 ExRConst_DefaultFileFormat
 Excel_AppQuit(ExcelAppHandle、NULL);
 CA_DiscardObjHandle(ExcelAppHandle)。
 CA_DiscardObjHandle(ExcelWorkbooksHandle)。
 CA_DiscardObjHandle(ExcelWorkbookHandle)。
 CA_DiscardObjHandle(ExcelSheetsHandle)。
 CA_DiscardObjHandle(ExcelWorksheetHandle)。
123456789101112131415
2)使用文件读写的方式保存:
 int型numberOfColumns。
 int型の行。
 double値;
 私は、J int型、
 int型属性値;
12345
 GetProjectDir(ExcelFileNameを); //取得し、現在のディレクトリ名プロジェクト
 MakePathname(ExcelFileName、 "DataCache.xls"、 ExcelFileName); // exceを保存するファイル名設定
 
 ファイルを* FPS = NULL;
 FPS = fopen(ExcelFileName、 "W");
 GetNumTableColumns(panelHandle、controlID、&NumberOfColumns);列の//数
 GetNumTableRows(panelHandle、controlID、&行 ); // 行の数
 のために(J = 1; J <= NumberOfColumns; J ++)
 {
  GetTableCellVal (panelHandle、controlID、MakePoint(J 、1)、table_title [J]); // table_titleの名前取得
  関数fprintf(FPS、 "%S \ T"、table_titleを[J]);
 }
 関数fprintf(FPS、 "\ N-") ;
 のためには、(I 2 =; I <=行; I ++)
 {
  (J = 1; J <= NumberOfColumns。J ++)
  {
   GetTableCellAttribute(panelHandle、controlID、MakePoint(J、I)、ATTR_CELL_TYPE、および属性値);
   IF(属性値== 0)
   {
    GetTableCellVal(panelHandle、controlID、MakePoint(J、I)、&値); //データ取得
    (FPS関数fprintfを"%ル\ T"、値);
   }
   そう関数fprintf(FPS、 "\ T");
  }
  関数fprintf(FPS) "\ N-";
  J = 1;
 }
 FCLOSE(FPS);
------- ---------
免責事項:この記事はCC 4.0 BY-SAの著作権契約書に従って、CSDNブロガー「壊れたコンセプトHK」オリジナル記事です、元のソースのリンクと、この文を添付してください、再現。
オリジナルリンクします。https://blog.csdn.net/qq_26682769/article/details/92978639

おすすめ

転載: www.cnblogs.com/xihong2014/p/12348512.html