Labwindows_cvi erstellt Excel-Dateien basierend auf der C-Sprache

Inhaltsverzeichnis

1. Vorbereitende Arbeiten

(1) Suchen Sie den Pfad, in dem sich die Excel-Bibliothek befindet

(2) Erstellen Sie eine einfache Schnittstelle

(3) Externe Dateien hinzufügen (Dateien in die Excel-Bibliothek importieren)

2. Beginnen Sie mit der Programmierung

3. Erkennen Sie die Wirkung


Kürzlich gab es ein Projekt, das die Labwindows_cvi-Software als Instrumentensteuerungsprogramm verwenden musste. Wenn ich es verwende, weiß ich, dass die Entwicklungssprache die C-Sprache ist. Es dauerte mehr als einen halben Monat, bis ich mich mit der Labwindows_cvi-Software und der C-Sprachsyntax vertraut gemacht hatte , was den Arbeitsanforderungen kaum entspricht. Das Projekt muss eine Excel-Datei erstellen. Ich beherrsche die Sprache C nicht sehr gut. Ich dachte, ich kann sie mit der Funktion fopen erstellen und verwenden. Die Dateierweiterung entspricht dem Format der Datei. Nachdem ich die Informationen gelesen habe, weiß ich, dass die Dateiformate, die die fopen-Funktion erstellen kann, .txt, .dat, .csv usw. umfassen. Später fragte ich einen Kollegen, der Labwindows verwendet hat. Er sagte, er müsse die Excel-Bibliothek aufrufen, habe sie aber noch nie verwendet. Lass es mich versuchen, finde die Excel-Bibliothek im Installationspfad der Labwindows-Software, öffne sie und Beachten Sie, dass es in Excel verschiedene Betriebsfunktionen gibt, die direkt ausgeführt werden können. .

fopen(“D:\\S_试验结果\\test.xlsx”,w+)   //这样是不行的 

Es gibt auch einen Meister, der mir gesagt hat, dass es nicht notwendig ist, es zu erstellen. Kopieren Sie es einfach direkt, erstellen Sie zuerst lokal eine neue Excel-Tabelle und rufen Sie dann mit C den DOS-Kopierbefehl auf, um es zu kopieren. Ich habe es nicht versucht. aber es sollte möglich sein.

1. Vorbereitende Arbeiten

(1) Suchen Sie den Pfad, in dem sich die Excel-Bibliothek befindet

Öffnen Sie den Softwareinstallationspfad Labwindows_cvi. Ich habe ihn auf Laufwerk D installiert. Der Pfad lautet „D:\Programme (x86)\National Instruments\CVI2013\toolslib\activex\excel“. Wie in Abbildung 1 dargestellt.

                                                                                              Abbildung 1 Dateipfad der Excel-Bibliothek

(2) Erstellen Sie eine einfache Schnittstelle

Erstellen Sie ein Textsteuerelement und ein Schaltflächensteuerelement. wie in Bild 2 gezeigt.

                                                                                         Abbildung 2 Die erstellte Schnittstelle

(3) Externe Dateien hinzufügen (Dateien in die Excel-Bibliothek importieren)

Wählen Sie das Projekt „CreatExcelFile“ aus, klicken Sie mit der rechten Maustaste und klicken Sie auf „Vorhandene Datei hinzufügen“, wie in Abbildung 3 gezeigt. Suchen Sie jetzt den Pfad der Excel-Bibliotheksdatei, wählen Sie alle Dateien aus und klicken Sie auf „OK“, wie in Abbildung 3 gezeigt Abbildung 4; die endgültig importierte Datei ist in Abbildung 4 5 dargestellt.

                                                                               Abbildung 3: Hinzufügen externer Dateien zum Projekt

                                                                             Abbildung 4 Excel-Bibliotheksdatei hinzufügen

                                                                Abbildung 5 Die Projektliste nach dem Hinzufügen der Excel-Bibliotheksdatei

2. Beginnen Sie mit der Programmierung

(1) Importieren Sie die Header-Dateien „excelreport.h“ und „excel2000.h“, wie in Abbildung 6 dargestellt.

                                                                            Abbildung 6: Header-Datei importieren

(2) Schreiben Sie den Implementierungscode.

#include <cvirte.h>		
#include <userint.h>
#include "CreatExcelFile.h"
#include "excelreport.h"   
#include "excel2000.h"

static int excelpanel;

int main (int argc, char *argv[])
{
	if (InitCVIRTE (0, argv, 0) == 0)
		return -1;	/* out of memory */
	if ((excelpanel = LoadPanel (0, "CreatExcelFile.uir", ExcelPANEL)) < 0)
		return -1;
	DisplayPanel (excelpanel);
	RunUserInterface ();
	DiscardPanel (excelpanel);
	return 0;
}

int CVICALLBACK ExcelPANEL_callback (int panel, int event, void *callbackData,
									 int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_GOT_FOCUS:

			break;
		case EVENT_LOST_FOCUS:

			break;
		case EVENT_CLOSE:
			QuitUserInterface (0);
			break;
	}
	return 0;
}

int CVICALLBACK CreatExcelFile_callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	//保存路径 
	char savePath[MAX_PATHNAME_LEN]; 
	//文件保存路径
	char fileSavePath[MAX_PATHNAME_LEN]; 
	// excelApp句柄	   
	static CAObjHandle appHandle=0; 
	// excel工作区间句柄	
	static CAObjHandle bookHandle=0; 
	// excel工作区间表格1句柄   
	static CAObjHandle sheetHandle=0;
	// excel工作区间表格1句柄
	static CAObjHandle sheetHandle1=0; 
 
	switch (event)
	{
		case EVENT_COMMIT:	  
			//弹出文件夹选择框
			if(DirSelectPopupEx ("", "请选择存储文件夹", savePath)<0)    
			{
				return 0;  	   	   
			}	  
			// 将路径显示在界面文本控件  
			SetCtrlVal (excelpanel, ExcelPANEL_excelFile_path, savePath);    
		    // 获取文本控件路径
			GetCtrlVal (excelpanel, ExcelPANEL_excelFile_path, fileSavePath);
		    // 生成文件保存路径
			strcat(fileSavePath, "\\Data.xlsx" ); 
		 
			 
			//如果没有创建应用程序,则创建excel  
			if(appHandle==0)	   
			{	  
				ExcelRpt_ApplicationNew(0,&appHandle); 
			}
			else	 //如果已经创建,则首先关闭前一次的book和sheet   
			{	   
				ExcelRpt_ApplicationQuit(appHandle);  
				CA_DiscardObjHandle(appHandle);
				ExcelRpt_ApplicationNew(0,&appHandle); 
			}	
			//新建一个excel文件
			ExcelRpt_WorkbookNew(appHandle,&bookHandle);
			//获取sheet1句柄
			ExcelRpt_GetWorksheetFromName( bookHandle,"Sheet1",&sheetHandle);  
			//将Sheet1的名称改为amp
			ExcelRpt_SetWorksheetAttribute (sheetHandle, ER_WS_ATTR_NAME, "amp"); 
			//在已有的sheet表后面增加一个sheet表格
			ExcelRpt_WorksheetNew(bookHandle , -1,  &sheetHandle1);	 
			//将新增加的sheet表格名称改为pha
			ExcelRpt_SetWorksheetAttribute (sheetHandle1, ER_WS_ATTR_NAME, "pha");
	   		//excel 文件保存													
			ExcelRpt_WorkbookSave(bookHandle,fileSavePath,ExRConst_DefaultFileFormat  );
	 		//将文件设为可见  
		    //ExcelRpt_SetApplicationAttribute (appHandle, ER_AP_ATTR_VISIBLE, 1);  
			//退出excel文件
			ExcelRpt_ApplicationQuit(appHandle); 
			//释放excel资源
			CA_DiscardObjHandle(appHandle);  
			appHandle=0; 
			//弹出提示框
			MessagePopup("提示", "Excle文件已经创建!");   
			break;
	}
	return 0;
}

3. Erkennen Sie die Wirkung

Führen Sie das Programm aus und klicken Sie auf die Schaltfläche, um eine Excel-Datei zu erstellen. Der Effekt ist in Abbildung 7 und Abbildung 8 dargestellt.

                                                                    Abbildung 7 Programmschnittstelleneffekt

                                                                   Abbildung 8 Erstellte Excel-Tabelle

Supongo que te gusta

Origin blog.csdn.net/caimeihua5369/article/details/114681741
Recomendado
Clasificación