4

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

有我的代码:

    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 =
    }
}
4

2 回答 2

6

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

[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 文件所在的同一目录中。

阅读此链接(将 CSV 文件导入数据库),这是一个很好的示例,可以帮助您了解 Schema.ini 的工作原理

于 2013-01-31T20:12:08.913 回答
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 单元格中调整选项。每列都有自己的定义。复制到文本文件时,我在结果中得到了右引号和左引号。

于 2016-02-23T14:00:41.917 回答