2012-09-04 131 views
4

我想将CSV文件导出到datagridview。我需要创建文件schema.ini。但我不知道,我该如何创建它?如何创建schema.ini文件?我需要将我的.csv文件导出到datagridview

有我的代码:

public DataTable exceldenAl(string excelFile) 
    { 
     try 
     { 
      string fileName = Path.GetFileName(excelFile); 
      string pathOnly = Path.GetDirectoryName(excelFile); 
      string cmd = "Select * From [" + fileName + "$]"; 

      string cnstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathOnly + "\\;Extended Properties=\"Text;HDR=Yes;FORMAT=Delimited\""; 
      OleDbConnection ocn = new OleDbConnection(cnstr); 
      ocn.Open(); 
      OleDbCommand command = new OleDbCommand(cmd,ocn); 
      OleDbDataAdapter adap = new OleDbDataAdapter(command); 

      DataTable dt = new DataTable(); 
      dt.Locale = CultureInfo.CurrentCulture; 
      adap.Fill(dt); 
      return dt; 
     } 
     finally { 
     } 
    } 


    private void btnExcelReader_Click(object sender, EventArgs e) 
    { 
     string dosya; 
     string cevap; 
     openFileDialog1.ShowDialog(); 
     dosya = openFileDialog1.FileName.ToString(); 
     ClsExcelReader er = new ClsExcelReader(); 
     cevap = er.exceldenAl(dosya).ToString(); 
     dataGridView1.DataSource = cevap; 
     //listViewExcelOku.DataBindings = 
    } 
} 

回答

5

打开记事本,并创建一个类似的文件:

[YourCSVFileName.csv] 
ColNameHeader=True 
Format=CSVDelimited 
DateTimeFormat=dd-MMM-yyyy 
Col1=A DateTime 
Col2=B Text Width 100 
Col3=C Text Width 100 
Col4=D Long 
Col5=E Double 

修改上面的文件,以满足您的特定数据模式。将它作为SCHEMA.ini保存在* .CSV文件所在的同一目录中。

阅读此链接(Importing CSV File Into Database),这是一个很好的例子,让你和了解的Schema.ini如何工作

+0

谢谢。这解决了我的问题 –

1

我写这些Excel公式生成该文件的内容,如果你能弄个带有列标题的Excel工作表。这很基本。根据需要添加和删除功能。它假定所有带有分隔符的文本。然后在A2中插入以下公式(包括所有选项):

="[no headers.csv] 
"&"ColNameHeader=false 
"&"MaxScanRows=0 
"&"Format=Delimited(;) 
Col"&COLUMN()&"="&A1&" text 
" 

并在B2中的下面的公式。

=A2&"Col"&COLUMN()&"="&B1&" text 
" 

然后向右拖动以获取您的基本schema.ini(最右边的单元格)。您可以调整列名称下方的Excel单元格中的选项。每一列都有自己的定义。复制到文本文件时,我在结果中关闭并打开引号。

相关问题