如何用双撇号替换excel工作表中的所有撇号

本文关键字:excel 何用双 替换 工作 | 更新日期: 2023-09-27 18:17:49

我必须将excel表导出到ms sql数据库表。为此,我使用了旧连接。效果很好。但是任何包含撇号的单元格值(例如:单元格1的值是-divya's)都会显示错误"字符串后未闭引号"。我发现要在数据库中插入单引号或撇号数据,我们需要在数据中使用两个连续的单引号或撇号。如何在excel表格中实现呢?

 protected void btnSend_Click(object sender, ImageClickEventArgs e) //upload QB
{
    SqlConnection con = obj.getcon();      
    string filename = Path.GetFileName(fileuploadExcel.FileName);
    int fileSize = fileuploadExcel.PostedFile.ContentLength;
   if ((Path.GetExtension(filename) == ".xlsx" || Path.GetExtension(filename) == ".xls") && (fileSize <= (1.049e+6)))
    {
            string excel_file = "my_excel_file";
            var path1 = Server.MapPath("~/personal/" + excel_file + "");
            var directory = new DirectoryInfo(path1);
            if (directory.Exists == false)
            {
                directory.Create();
            }
            fileuploadExcel.SaveAs(path1 + "''" + filename);
            string filepath = path1 + "''" + filename;
            //Create connection string to Excel work book
            string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties=Excel 12.0;Persist Security Info=False";

            OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
            //Create OleDbCommand to fetch data from Excel
            OleDbCommand cmd = new OleDbCommand("Select [Name],[Address] from  [mysheet$]", excelConnection);
            excelConnection.Open();
            OleDbDataReader dReader;
            dReader = cmd.ExecuteReader();
            string name = "";
            string address = "";
            while (dReader.Read())
            {
               name = valid(dReader, 0);
               address = valid(dReader, 1);
               insertdataintosql(name,address);
            }
            excelConnection.Close();       
    }
    else
    {
        Label5.Visible = true;
        Label5.Text = " Only Files Having .xlsx or.xls format and less than 1MB size can be uploaded**";
    }
}
  protected string valid(OleDbDataReader myreader, int stval)
{
    //if any columns are found null then they are replaced by zero
    object val = myreader[stval];
    if (object.ReferenceEquals(val, DBNull.Value))
    {
        return Convert.ToString(0);
    }
    else
    {
        return val.ToString();
    }
}
public void insertdataintosql(string name,string address,)
{   SqlConnection conn = obj.getcon();
    conn.Open();
    string query = "insert into sample_test(name,address) values('" + name + "','"+address+ "')"; 
    SqlCommand cmd = new SqlCommand(query, conn);
    cmd.ExecuteNonQuery();
    conn.Close();
  }

如何用双撇号替换excel工作表中的所有撇号

在您的valid函数中:

代替

return val.ToString();

使用:

return val.ToString().Replace("'","''");