【发布时间】:2023-04-02 17:55:01
【问题描述】:
我正在使用 ASP.net 制作一些应用程序,但我有一个问题,问题是用户应该导入 excel 文件(文件模式始终相同),但在 excel 文件中有一个包含一堆名称的单元格,看起来像这样
ID Names
1 Mick Jagger
Elton John
2 James Hetfield
Axl Rose
等等,所以我每个单元格有 2 个或更多名称...到目前为止,我将该 excel 文件导入数据集
sqlCMD.Connection.Open();
using (OleDbConnection excelConnection = new OleDbConnection(excelConnString))
{
using (OleDbCommand cmd = new OleDbCommand("Select " + CompanyID + ", *
From [Sheet1$]"
, excelConnection))
{
OleDbDataAdapter daSheet =
new OleDbDataAdapter(cmd.CommandText, excelConnection);
DataTable table;
table = new DataTable();
daSheet.Fill(table);
PreparedData.Tables.Add(table);
}
}
所以在成功导入后,我有一个导入数据集的对象列表,这很棒,但是每个单元格有 2 个或更多名称给我带来了麻烦,因为在对象值中它写成这样“Mick Jagger \n Elton John ",所以我正在尝试替换它并将其添加回数据集(我尝试制作新数据集但效果不佳)
int Rows = PreparedData.Tables[0].Rows.Count;
int Columns = PreparedData.Tables[0].Columns.Count;
for (int i = 0; i < Rows; i++)
{
for (int s = 0; s < Columns; s++)
{
if (s == 4 || s == 5 || s == 6 || s == 7)
{
object ValueToReplace;
object Replaced;
ValueToReplace = PreparedData.Tables[0].Rows[i].ItemArray[s];
Replaced = ValueToReplace.ToString().Replace("\n", ";");
PreparedData.Tables[0].Rows[i].ItemArray[s] = Replaced;
}
}
}
重点是最后我想使用(正在工作)将修改后的数据导入我的 SQL 表中
SqlBulkCopy bulkcopy = new SqlBulkCopy(sqlCMD.Connection);
bulkcopy.DestinationTableName = "Excel_Import";
try
{
bulkcopy.WriteToServer(FixedData);
}
catch (Exception e)
{
}
那么你能帮助我并建议我如何修改它
PreparedData.Tables[0].Rows[i].ItemArray[s] = Replaced;
【问题讨论】:
标签: c# sql asp.net excel import