>> IN THE NAME OF GOD << 
Import Data from CSV EXCEL file and Export to XML EXCEL file in C programming 
 
C program is written by Salar Delavar Ghashghaei – Publication Date: 27/May/2018 
E‐mail: salar.d.ghashghaei@gmail.com 
C Code:
#include <conio.h>
#include <stdio.h>
#include <windows.h>
#define N 10000
#define ShowText01 "CSV_C_XMLexcel-input.csv"
#define ShowText02 "outputXML.xml"
void IMPORT_DATA01(double X[],double Y[],int &n);
void MessageCheck_IMPORT_DATA01(double X[],double Y[],int n);
void MessageErrorReportTEXT();
void DATA_TABLE(double X[],double Y[],int n);
void OUTPUT_XML(double X[],double Y[],int n,const char SheetName[],const char TableName[],int NumCol,int NumRow,int FontSize);
int main(){
int n,NumCol,NumRow,FontSize;
double X[N],Y[N];
char SheetName[50],TableName[50];
IMPORT_DATA01(X,Y,n);
MessageCheck_IMPORT_DATA01(X,Y,n);
DATA_TABLE(X,Y,n);
OUTPUT_XML(X,Y,n,"DATA_TABLE","X_Y Data",2,n,11);
system("start /w outputXML.xml");
getch();
return 0;
}
void IMPORT_DATA01(double X[],double Y[],int &n){
int i = 0;
FILE *InputFile;
InputFile = fopen(ShowText01, "r");
if (!InputFile){
MessageErrorReportTEXT();
printf(" File is not available! -> [%s] n",ShowText01);
Sleep(6000);
exit(1);
}
char line[1000];
do{
fscanf(InputFile,"%lf,%lf",&X[i],&Y[i]);
//printf("%d - X[%d]: %lf - Y[%d]: %lfn",i,i,X[i],i,Y[i]);
i++;
}
while(i < N && fgets(line,sizeof(line),InputFile) != NULL);
n = i-1;
}
void MessageCheck_IMPORT_DATA01(double X[],double Y[],int n){
int i;
for(i=0;i<n;i++){
if (X[i] < 0 || Y[i] < 0 ){
MessageErrorReportTEXT();
printf(" Please check the input file! -> [%s]n",ShowText01);
printf(" Row %d has a negative value.n",i+1);
printf("n X[%d]: %f - ",i+1,X[i]);printf("Y[%d]: %fn",i+1,Y[i]);
printf(" *** Negative data input value is not acceptable ***n");
Sleep(40000);
exit(1);
}
}
}
void MessageErrorReportTEXT(){
int i;
char Ql;
Ql=176;
printf("an ");
for (i=1;i<50;i++)
printf("%c",Ql);
printf(" Error Report ");
for (i=1;i<50;i++)
printf("%c",Ql);
printf("n");
}
void DATA_TABLE(double X[],double Y[],int n){
int i;
char Qa,Qb,Qc,Qd,Qe,Qf;
int BB=201,CC=205,DD=187,EE=200,FF=188,GG=186;
Qa=BB;Qb=CC;Qc=DD;Qd=EE;Qe=FF;Qf=GG;
printf(" %c",Qa);
for (i=1;i<45;i++)
printf("%c",Qb);
printf("%cn",Qc);
printf(" %c X-Y Data Table %cn",Qf,Qf);
printf(" %c Number X Y %cn",Qf,Qf);
printf(" %c",Qd);
for (i=1;i<45;i++)
printf("%c",Qb);
printf("%cn",Qe);
for(i=0;i<n;i++)
printf("t %d %.3e %.3en",i+1,X[i],Y[i]);
}
void OUTPUT_XML(double X[],double Y[],int n,const char SheetName[],const char TableName[],int NumCol,int NumRow,int FontSize){
FILE *OutputFile;
OutputFile = fopen(ShowText02, "w");
fprintf(OutputFile,"<?xml version="1.0"?>n");
fprintf(OutputFile,"<?mso-application progid="Excel.Sheet"?> n");
fprintf(OutputFile,"<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" n");
fprintf(OutputFile,"xmlns:o="urn:schemas-microsoft-com:office:office" n");
fprintf(OutputFile,"xmlns:x="urn:schemas-microsoft-com:office:excel" n");
fprintf(OutputFile,"xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" n");
fprintf(OutputFile,"xmlns:html="http://www.w3.org/TR/REC-html40"> n");
fprintf(OutputFile,"<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> n");
fprintf(OutputFile,"<Author>SALAR DELAVAR GHASHGHAEI</Author> n");
fprintf(OutputFile,"<LastAuthor>Windows User</LastAuthor> n");
fprintf(OutputFile,"<Created>2019-05-27T12:20:49Z</Created> n");
fprintf(OutputFile,"<Version>15.00</Version> n");
fprintf(OutputFile,"</DocumentProperties> n");
fprintf(OutputFile,"<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> n");
fprintf(OutputFile,"<AllowPNG/> n");
fprintf(OutputFile,"</OfficeDocumentSettings> n");
fprintf(OutputFile,"<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> n");
fprintf(OutputFile,"<WindowHeight>7905</WindowHeight> n");
fprintf(OutputFile,"<WindowWidth>20490</WindowWidth> n");
fprintf(OutputFile,"<WindowTopX>0</WindowTopX> n");
fprintf(OutputFile,"<WindowTopY>0</WindowTopY> n");
fprintf(OutputFile,"<ProtectStructure>False</ProtectStructure> n");
fprintf(OutputFile,"<ProtectWindows>False</ProtectWindows> n");
fprintf(OutputFile,"</ExcelWorkbook> n");
fprintf(OutputFile,"<Styles> n");
fprintf(OutputFile,"<Style ss:ID="Default" ss:Name="Normal"> n");
fprintf(OutputFile,"<Alignment ss:Vertical="Bottom"/> n");
fprintf(OutputFile,"<Borders/> n");
fprintf(OutputFile,"<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="%d" ss:Color="#00FF00"/> n",FontSize);///////////
fprintf(OutputFile,"<Interior/> n");
fprintf(OutputFile,"<NumberFormat/> n");
fprintf(OutputFile,"<Protection/> n");
fprintf(OutputFile,"</Style> n");
fprintf(OutputFile,"<Style ss:ID="s73"> n");
fprintf(OutputFile,"<Alignment ss:Horizontal="Center" ss:Vertical="Center"/> n");
fprintf(OutputFile,"<Borders> n");
fprintf(OutputFile,"<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/> n");
fprintf(OutputFile,"<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/> n");
fprintf(OutputFile,"<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/> n");
fprintf(OutputFile,"<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/> n");
fprintf(OutputFile,"</Borders> n");
fprintf(OutputFile,"</Style> n");
fprintf(OutputFile,"<Style ss:ID="s74"> n");
fprintf(OutputFile,"<Alignment ss:Horizontal="Center" ss:Vertical="Center"/> n");
fprintf(OutputFile,"<Borders> n");
fprintf(OutputFile,"<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/> n");
fprintf(OutputFile,"<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/> n");
fprintf(OutputFile,"<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/> n");
fprintf(OutputFile,"<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/> n");
fprintf(OutputFile,"</Borders> n");
fprintf(OutputFile,"</Style> n");
fprintf(OutputFile,"</Styles> n");
fprintf(OutputFile,"<Worksheet ss:Name="%s"> n",SheetName);
fprintf(OutputFile,"<Table ss:ExpandedColumnCount="%d" ss:ExpandedRowCount="%d" x:FullColumns="1" n",NumCol,NumRow+1);
fprintf(OutputFile,"x:FullRows="1" ss:DefaultRowHeight="15"> n");
fprintf(OutputFile,"<Row> n");
fprintf(OutputFile,"<Cell ss:MergeAcross="%d" ss:StyleID="s73"><Data ss:Type="String">%s</Data></Cell> n",NumCol-1,TableName);///
fprintf(OutputFile,"</Row> n");
for (int i=0;i<n;i++){
fprintf(OutputFile,"<Row> n");
fprintf(OutputFile,"<Cell ss:StyleID="s74"><Data ss:Type="String">%.5e</Data></Cell> n",X[i]);///
fprintf(OutputFile,"<Cell ss:StyleID="s74"><Data ss:Type="String">%.5e</Data></Cell> n",Y[i]);///
fprintf(OutputFile,"</Row> n");
}
fprintf(OutputFile,"</Table> n");
fprintf(OutputFile,"<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> n");
fprintf(OutputFile,"<PageSetup> n");
fprintf(OutputFile,"<Header x:Margin="0.3"/> n");
fprintf(OutputFile,"<Footer x:Margin="0.3"/> n");
fprintf(OutputFile,"<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/> n");
fprintf(OutputFile,"</PageSetup> n");
fprintf(OutputFile,"<Selected/> n");
fprintf(OutputFile,"<ProtectObjects>False</ProtectObjects> n");
fprintf(OutputFile,"<ProtectScenarios>False</ProtectScenarios> n");
fprintf(OutputFile,"</WorksheetOptions> n");
fprintf(OutputFile,"</Worksheet> n");
fprintf(OutputFile,"</Workbook> n");
fclose(OutputFile);
}
Plot : 
 
Figure(1) Input data in CSV
 
Figure(2) Analysis data in C
 
Figure(3) Output data in XML EXCEL
 

Import data from csv excel file and export to xml excel file in c programming

  • 1.
    >> IN THE NAME OF GOD <<  Import Data from CSV EXCEL file and Export to XML EXCEL file in C programming    C program is written by Salar Delavar Ghashghaei – Publication Date: 27/May/2018  E‐mail: salar.d.ghashghaei@gmail.com  C Code: #include <conio.h> #include <stdio.h> #include<windows.h> #define N 10000 #define ShowText01 "CSV_C_XMLexcel-input.csv" #define ShowText02 "outputXML.xml" void IMPORT_DATA01(double X[],double Y[],int &n); void MessageCheck_IMPORT_DATA01(double X[],double Y[],int n); void MessageErrorReportTEXT(); void DATA_TABLE(double X[],double Y[],int n); void OUTPUT_XML(double X[],double Y[],int n,const char SheetName[],const char TableName[],int NumCol,int NumRow,int FontSize); int main(){ int n,NumCol,NumRow,FontSize; double X[N],Y[N]; char SheetName[50],TableName[50]; IMPORT_DATA01(X,Y,n); MessageCheck_IMPORT_DATA01(X,Y,n); DATA_TABLE(X,Y,n); OUTPUT_XML(X,Y,n,"DATA_TABLE","X_Y Data",2,n,11); system("start /w outputXML.xml"); getch(); return 0; } void IMPORT_DATA01(double X[],double Y[],int &n){ int i = 0; FILE *InputFile; InputFile = fopen(ShowText01, "r"); if (!InputFile){ MessageErrorReportTEXT(); printf(" File is not available! -> [%s] n",ShowText01); Sleep(6000); exit(1); } char line[1000]; do{ fscanf(InputFile,"%lf,%lf",&X[i],&Y[i]); //printf("%d - X[%d]: %lf - Y[%d]: %lfn",i,i,X[i],i,Y[i]); i++; }
  • 2.
    while(i < N&& fgets(line,sizeof(line),InputFile) != NULL); n = i-1; } void MessageCheck_IMPORT_DATA01(double X[],double Y[],int n){ int i; for(i=0;i<n;i++){ if (X[i] < 0 || Y[i] < 0 ){ MessageErrorReportTEXT(); printf(" Please check the input file! -> [%s]n",ShowText01); printf(" Row %d has a negative value.n",i+1); printf("n X[%d]: %f - ",i+1,X[i]);printf("Y[%d]: %fn",i+1,Y[i]); printf(" *** Negative data input value is not acceptable ***n"); Sleep(40000); exit(1); } } } void MessageErrorReportTEXT(){ int i; char Ql; Ql=176; printf("an "); for (i=1;i<50;i++) printf("%c",Ql); printf(" Error Report "); for (i=1;i<50;i++) printf("%c",Ql); printf("n"); } void DATA_TABLE(double X[],double Y[],int n){ int i; char Qa,Qb,Qc,Qd,Qe,Qf; int BB=201,CC=205,DD=187,EE=200,FF=188,GG=186; Qa=BB;Qb=CC;Qc=DD;Qd=EE;Qe=FF;Qf=GG; printf(" %c",Qa); for (i=1;i<45;i++) printf("%c",Qb); printf("%cn",Qc); printf(" %c X-Y Data Table %cn",Qf,Qf); printf(" %c Number X Y %cn",Qf,Qf); printf(" %c",Qd); for (i=1;i<45;i++) printf("%c",Qb); printf("%cn",Qe); for(i=0;i<n;i++) printf("t %d %.3e %.3en",i+1,X[i],Y[i]); } void OUTPUT_XML(double X[],double Y[],int n,const char SheetName[],const char TableName[],int NumCol,int NumRow,int FontSize){ FILE *OutputFile; OutputFile = fopen(ShowText02, "w");
  • 3.
    fprintf(OutputFile,"<?xml version="1.0"?>n"); fprintf(OutputFile,"<?mso-application progid="Excel.Sheet"?>n"); fprintf(OutputFile,"<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" n"); fprintf(OutputFile,"xmlns:o="urn:schemas-microsoft-com:office:office" n"); fprintf(OutputFile,"xmlns:x="urn:schemas-microsoft-com:office:excel" n"); fprintf(OutputFile,"xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" n"); fprintf(OutputFile,"xmlns:html="http://www.w3.org/TR/REC-html40"> n"); fprintf(OutputFile,"<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> n"); fprintf(OutputFile,"<Author>SALAR DELAVAR GHASHGHAEI</Author> n"); fprintf(OutputFile,"<LastAuthor>Windows User</LastAuthor> n"); fprintf(OutputFile,"<Created>2019-05-27T12:20:49Z</Created> n"); fprintf(OutputFile,"<Version>15.00</Version> n"); fprintf(OutputFile,"</DocumentProperties> n"); fprintf(OutputFile,"<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> n"); fprintf(OutputFile,"<AllowPNG/> n"); fprintf(OutputFile,"</OfficeDocumentSettings> n"); fprintf(OutputFile,"<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> n"); fprintf(OutputFile,"<WindowHeight>7905</WindowHeight> n"); fprintf(OutputFile,"<WindowWidth>20490</WindowWidth> n"); fprintf(OutputFile,"<WindowTopX>0</WindowTopX> n"); fprintf(OutputFile,"<WindowTopY>0</WindowTopY> n"); fprintf(OutputFile,"<ProtectStructure>False</ProtectStructure> n"); fprintf(OutputFile,"<ProtectWindows>False</ProtectWindows> n"); fprintf(OutputFile,"</ExcelWorkbook> n"); fprintf(OutputFile,"<Styles> n"); fprintf(OutputFile,"<Style ss:ID="Default" ss:Name="Normal"> n"); fprintf(OutputFile,"<Alignment ss:Vertical="Bottom"/> n"); fprintf(OutputFile,"<Borders/> n"); fprintf(OutputFile,"<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="%d" ss:Color="#00FF00"/> n",FontSize);/////////// fprintf(OutputFile,"<Interior/> n"); fprintf(OutputFile,"<NumberFormat/> n"); fprintf(OutputFile,"<Protection/> n"); fprintf(OutputFile,"</Style> n"); fprintf(OutputFile,"<Style ss:ID="s73"> n"); fprintf(OutputFile,"<Alignment ss:Horizontal="Center" ss:Vertical="Center"/> n"); fprintf(OutputFile,"<Borders> n"); fprintf(OutputFile,"<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/> n"); fprintf(OutputFile,"<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/> n"); fprintf(OutputFile,"<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/> n"); fprintf(OutputFile,"<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/> n"); fprintf(OutputFile,"</Borders> n"); fprintf(OutputFile,"</Style> n"); fprintf(OutputFile,"<Style ss:ID="s74"> n"); fprintf(OutputFile,"<Alignment ss:Horizontal="Center" ss:Vertical="Center"/> n"); fprintf(OutputFile,"<Borders> n"); fprintf(OutputFile,"<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/> n"); fprintf(OutputFile,"<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/> n"); fprintf(OutputFile,"<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/> n"); fprintf(OutputFile,"<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/> n"); fprintf(OutputFile,"</Borders> n"); fprintf(OutputFile,"</Style> n");
  • 4.
    fprintf(OutputFile,"</Styles> n"); fprintf(OutputFile,"<Worksheet ss:Name="%s">n",SheetName); fprintf(OutputFile,"<Table ss:ExpandedColumnCount="%d" ss:ExpandedRowCount="%d" x:FullColumns="1" n",NumCol,NumRow+1); fprintf(OutputFile,"x:FullRows="1" ss:DefaultRowHeight="15"> n"); fprintf(OutputFile,"<Row> n"); fprintf(OutputFile,"<Cell ss:MergeAcross="%d" ss:StyleID="s73"><Data ss:Type="String">%s</Data></Cell> n",NumCol-1,TableName);/// fprintf(OutputFile,"</Row> n"); for (int i=0;i<n;i++){ fprintf(OutputFile,"<Row> n"); fprintf(OutputFile,"<Cell ss:StyleID="s74"><Data ss:Type="String">%.5e</Data></Cell> n",X[i]);/// fprintf(OutputFile,"<Cell ss:StyleID="s74"><Data ss:Type="String">%.5e</Data></Cell> n",Y[i]);/// fprintf(OutputFile,"</Row> n"); } fprintf(OutputFile,"</Table> n"); fprintf(OutputFile,"<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> n"); fprintf(OutputFile,"<PageSetup> n"); fprintf(OutputFile,"<Header x:Margin="0.3"/> n"); fprintf(OutputFile,"<Footer x:Margin="0.3"/> n"); fprintf(OutputFile,"<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/> n"); fprintf(OutputFile,"</PageSetup> n"); fprintf(OutputFile,"<Selected/> n"); fprintf(OutputFile,"<ProtectObjects>False</ProtectObjects> n"); fprintf(OutputFile,"<ProtectScenarios>False</ProtectScenarios> n"); fprintf(OutputFile,"</WorksheetOptions> n"); fprintf(OutputFile,"</Worksheet> n"); fprintf(OutputFile,"</Workbook> n"); fclose(OutputFile); }
  • 5.
  • 6.
  • 7.