91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么利用純C語言對EXCEL進行讀寫操作

發布時間:2022-07-07 11:51:04 來源:億速云 閱讀:501 作者:iii 欄目:編程語言

本文小編為大家詳細介紹“怎么利用純C語言對EXCEL進行讀寫操作”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么利用純C語言對EXCEL進行讀寫操作”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

怎么利用純C語言對EXCEL進行讀寫操作

一、寫操作

第一步:單純C語言寫入Excel文件只能是 *.csv的后綴文件(是和txt一樣,以二進制文本形式存儲,它是以都逗號分隔符做個單元格內容的劃分, .xls存儲比較復雜, .csv文件可以可以通過.xls或者.xlsx文件另存為,選擇.csv文件格式),它們可以通過Notepad++等記事本軟件當做txt文件打開。

需要注意的是:當對*.xls文件寫入或者讀取之后,再打開Excel文件時會彈出格式兼容的提示窗口,因為這樣的C語言操作Excel文件是當文本文件打開操作的,所以會忽略原有格式,但是不影響,點擊“是(Y)”即可,如下圖所示:

怎么利用純C語言對EXCEL進行讀寫操作

第二步:對表格的處理,使用C語言打開表格后,文件指針指向整個表格的第1行第1列。
如果要給它的下一個同行單元格(第1行第2列)寫數據,使用"\t" ;
如果要給它的下一個同列單元格(第2行第1列)寫數據,使用"\n" 。

具體代碼如下:

void writeExcel()
{
	char chy[4]={ 'x' ,'a' ,'h','w' } ;
	int data[4]={ 1 , 3 , 6 ,9	};
	int i ;
	FILE *fp = NULL ;
	fp = fopen("G:\\Desktop\\test.csv","w") ;
	for (i=0 ; i<4 ;i++)
		fprintf(fp,"%c\t%d\n",chy[i],data[i] ) ;
	fclose(fp);
}
void main()
{					
	writeExcel()  ;	
}

運行結果

怎么利用純C語言對EXCEL進行讀寫操作
怎么利用純C語言對EXCEL進行讀寫操作

二、讀操作

讀取文件

怎么利用純C語言對EXCEL進行讀寫操作
怎么利用純C語言對EXCEL進行讀寫操作

對于讀取Excel文件的操作,使用了文件隨機定位函數fseek(),它的一般調用格式如下:
fseek(文件指針,位移量,起始位置) ;
**fseek()**參數說明:
位移量
: 指重新定位時的字節偏移數,表示相對于基址的字符數,通常是一個長整型數,可以是整形常量,整形表達式等。如果用整型常量,需要再后面加上字母“L”;如果使用整形表達式需要用“(long)(表達式)”強制轉換成長整形。

  • 起始位置

  • 指重新定位時的基準點,也就是基址,用整數或符合常量表示。如下表:

整數符號常量對應的起始位置
0SEEK_SET文件開頭
1SEEK_CUR文件指針的當前位置
2SEEK_END文件末尾

例如:

fseek(fp , 10L , 0);

具體代碼如下:

#include <stdio.h>
void main()
{	
	FILE *fp;
	char filename[40]  ;
	int i,j ;
    float da[6][5] = {0} ;
    printf(" 輸入文件名: ");
    gets(filename);
    fp=fopen(filename,"r");     // fp指針指向文件頭部
    for(i = 0 ;i < 6 ; i++)
        for(j = 0 ;j < 5 ; j++)
        {
			fscanf(fp,"%f",&da[i][j]);
			fseek(fp, 5L, SEEK_CUR);   /*fp指針從當前位置向后移動*/
		}
           
    for(i = 0 ;i < 6 ; i++)
        printf("%f\t%f\t%f\t%f\t%f\t\n",da[i][0],
         da[i][1],da[i][2],da[i][3],da[i][4]);
}

運行結果

怎么利用純C語言對EXCEL進行讀寫操作


十分抱歉,由于個人疏忽,代碼給大家帶來麻煩,再次表示抱歉。以上讀Excel文件的錯誤已經解決,代碼已經更新,錯誤的產生是由于fseek( )函數放錯了位置,以及其中第二個參數的偏移量的錯誤,若大家在以后學習中發現讀取數據全為0或者讀取數據順序位置不正確,請查閱fseek( )函數的參數使用方法。

另外,上述開發是在CodeBlocks中進行的,如果使用Visual Stdio 2010等版本軟件,出現閃退問題,是軟件自身bug所致,在main( )函數結尾添加"system(“pause”); 或者getchar( ); " 即可解決,對應的VS2010讀Excel實例如下:


例程:

怎么利用純C語言對EXCEL進行讀寫操作

讀該Excel文件代碼如下:

#include <stdio.h>
void main()
{   
    FILE *fp;
    char filename[40]  ;
    int i,j ;
    float da[6][5] = {0} ;
    printf(" 輸入文件名: ");
    gets(filename);
    fp=fopen("as.csv","r");
    fseek(fp, 5L, SEEK_SET);   // 從文件第二行開始讀取
    for(i = 0 ;i < 6 ; i++)
        for(j = 0 ;j < 5 ; j++)
		{
			fscanf(fp,"%f",&da[i][j]);
			fseek(fp, 1L, SEEK_CUR);   /*fp指針從當前位置向后移動*/
		}
           
	for(i = 0 ;i < 6 ; i++)
        printf("%f\t%f\t%f\t%f\t%f\t\n",da[i][0],
         da[i][1],da[i][2],da[i][3],da[i][4]);

	getchar() ;
}

VS2010工程如下:

怎么利用純C語言對EXCEL進行讀寫操作

運行結果:

怎么利用純C語言對EXCEL進行讀寫操作

三、最新補充


由于經常有朋友告訴我運行結果是0 ,并將他們的工程發到我郵箱,我試著運行了下,確實發現是0.0 ,程序沒有報錯。

然后,我試著將他們發給我的工程里的excel文件或者csv文件打開,發現會彈出提示文件損壞,如果我點擊“是”的話,文件同樣可以繼續打開,這可能是文件格式損壞了,所以程序計算不了數據的位置。我簡單的將他們的excel文件重新另存為了一個excel,便運行成功了。他們的excel問題如下圖。

怎么利用純C語言對EXCEL進行讀寫操作

損壞后還可以打開

讀到這里,這篇“怎么利用純C語言對EXCEL進行讀寫操作”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五河县| 元谋县| 繁峙县| 漳平市| 突泉县| 时尚| 资讯| 嘉义市| 武鸣县| 巴彦淖尔市| 东乡| 平原县| 阜康市| 渭南市| 芦溪县| 宿州市| 青龙| 阿拉善右旗| 永仁县| 永修县| 简阳市| 遵义市| 建水县| 庆阳市| 大荔县| 永善县| 十堰市| 海阳市| 龙游县| 静海县| 绥德县| 洪湖市| 苏尼特左旗| 方正县| 金堂县| 宣城市| 长顺县| 吉安市| 敦煌市| 稷山县| 无为县|