将excel中的数据列填充为string

我正在格式化的Excel表格(小数点,date等)填写数据表格。

我的问题是列被格式化为Excel表格,但我需要填充所有的列作为string,我怎么能做到这一点?

我的import方法:

Private Function upload(filename As String) As DataTable Dim FilePath__1 As String = "Uploads/" Try Dim allowdFile As String() = {".xls", ".xlsx"} Dim FileExt As String = ".xls" Dim isValidFile As Boolean = allowdFile.Contains(FileExt) If Not isValidFile Then Return Nothing Else Dim filePath__2 As String = Server.MapPath(FilePath__1) & filename Dim con As OleDbConnection = Nothing If FileExt = ".xls" Then con = New OleDbConnection((Convert.ToString("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=") & filePath__2) + ";Extended Properties=Excel 8.0;") ElseIf FileExt = ".xlsx" Then con = New OleDbConnection((Convert.ToString("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=") & filePath__2) + ";Extended Properties=Excel 12.0;") End If con.Open() Dim dt As DataTable = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing) Dim getExcelSheetName As String = dt.Rows(0)("Table_Name").ToString() Dim ExcelCommand As New OleDbCommand((Convert.ToString("SELECT * FROM [") & getExcelSheetName) + "]", con) Dim ExcelAdapter As New OleDbDataAdapter(ExcelCommand) Dim ExcelDataSet As New DataSet() ExcelAdapter.Fill(ExcelDataSet) con.Close() If ExcelDataSet.Tables.Count > 0 Then Return ExcelDataSet.Tables(0) Else Return Nothing End If End If Catch ex As Exception Return Nothing End Try End Function 

你能帮忙的话,我会很高兴。

一个简单的方法是循环行并使用ToString

 DataTable tblOld = ExcelDataSet.Tables[0]; DataTable tblNew = new DataTable(); foreach (DataColumn col in tblOld.Columns) tblNew.Columns.Add(col.ColumnName); foreach (DataRow rowOld in tblOld.Rows) { DataRow rowNew = tblNew.Rows.Add(); foreach (DataColumn col in tblOld.Columns) { rowNew.SetField(col.ColumnName, rowOld.IsNull(col) ? "" : rowOld[col].ToString()); } } return tblNew; 

请尝试在您的Excel连接string中使用IMEX = 1,如下所示

 "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=YourExcelFilePath.xls;Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""" 

这个属性提示读者以文本的forms读取所有的值