0

我的 Excel 工作簿存储在某个位置,基本上,当我单击一个按钮时,我正在使用 Export 从 gridview 中导出 excel。

一切正常,

我的问题是,“我想先查找文件,如果它已经存在,然后用我的 gridview 获得的数据更新它,如果有任何新数据存在。”

我的函数只是创建了大量的新数据,这些数据覆盖了之前的数据。

谢谢

4

1 回答 1

0

您可以先检查文件如下

 string filePath = Request.PhysicalApplicationPath + "filename.xls";  
 FileInfo imageFile = new FileInfo(filePath);  
 bool fileExists = imageFile.Exists;  
 Label1.Text = "File exits?: " + fileExists.ToString(); 

这是读取和更新excel文件的代码

    var myConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\\Language_Batch1_OneClick.xls';Extended Properties=Excel 8.0;"); ;
    var myCommand = new OleDbCommand();
    var upCommand = new OleDbCommand();
    int i = 0;
    try
    {

        string sql = null;
        myConnection.Open();
        myCommand.Connection = myConnection;
        sql = "select ANSWER_CODE,Punjabi from [Batch_Lang_1$]";
        myCommand.CommandText = sql;
        var dataReader = myCommand.ExecuteReader();

        while (dataReader.Read())
        {
            var langText = Convert.ToBase64String(Encoding.UTF8.GetBytes(dataReader["Punjabi"].ToString()));
            if (langText.Length >= 1000)
            {
                continue;
            }
            var ansCode = dataReader["ANSWER_CODE"].ToString();
            sql = "update [Batch_Lang_1$] set Punjabi= '" + langText + "'  where ANSWER_CODE='" + ansCode + "'";
            upCommand.Connection = myConnection;
            upCommand.CommandText = sql;
            upCommand.ExecuteNonQuery();
            i++;
        }

这是一个链接,其中包含用于读取和更新 excel 文件的代码。
C# 将 MS Excel 列转换为 utf-8,然后再转换为 base64

于 2012-12-10T11:15:00.353 回答