我的 Excel 工作簿存储在某个位置,基本上,当我单击一个按钮时,我正在使用 Export 从 gridview 中导出 excel。
一切正常,
我的问题是,“我想先查找文件,如果它已经存在,然后用我的 gridview 获得的数据更新它,如果有任何新数据存在。”
我的函数只是创建了大量的新数据,这些数据覆盖了之前的数据。
谢谢
我的 Excel 工作簿存储在某个位置,基本上,当我单击一个按钮时,我正在使用 Export 从 gridview 中导出 excel。
一切正常,
我的问题是,“我想先查找文件,如果它已经存在,然后用我的 gridview 获得的数据更新它,如果有任何新数据存在。”
我的函数只是创建了大量的新数据,这些数据覆盖了之前的数据。
谢谢
您可以先检查文件如下
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