Tag: oledbconnection

在VB.net中读取Excel文件的问题

我一直在尝试上传和阅读一个Excel文件(.xls或.xlsx) 我正在使用这个代码成功卸载: Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpload.Click Dim filepath As String = "" If FileUpload1.HasFile Then Try Dim filename As String = FileUpload1.PostedFile.FileName Dim extension = (filename.Substring(filename.LastIndexOf("."), (filename.Length() – filename.LastIndexOf(".")))) If extension = ".xlsx" Or extension = ".xls" Then filepath = "\" & Common.toUnix(Now) & "_" & filename […]

用错误的标题行阅读Excel文件

我一直在使用OleDbConnection从我的C#代码中读取Excel文件。 当文件有一个顶部的标题行和下面的数据时,一切都很好。 使用以下连接string: var query = "SELECT [Col1],[Col2],[Col3] FROM [Sheet1$]"; 现在我需要处理一个从第一行到第十五行的强制性内容的Excel文件。 第15行是标题行,其余是行的数据。 我怎样才能读取这样的文件?

Excel外部表格不是预期的格式

我从同一个Excel文件运行这个代码两次,它工作正常,我得到正确的表。 但是,当我尝试运行它第三次崩溃,并引发外部表格不是预期的格式。 Filename = filename; if (ExcelSet == null) { string HDR = firstRowContainsColumnNames ? "Yes" : "No"; string strConn; if (filename.Substring(filename.LastIndexOf('.')).ToLower() == ".xlsx") { strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Filename + ";Extended Properties=\"Excel 12.0;HDR=" + HDR + ";IMEX=1\""; } else if (filename.Substring(filename.LastIndexOf('.')).ToLower() == ".xls") { strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Filename + ";Extended Properties=\"Excel […]

OleDb Excel连接错误“System.Data.OleDb.OleDbException”

我创build了一个连接到共享文件夹上的Excel工作表的小型vb.net应用程序。 它工作得很好,如果我打开之前使用的应用程序的Excel,问题是当Excel不在后台打开,当我尝试打开一个连接时出现“System.Data.OleDb.OleDbException”错误。 我已经读了一些关于这个错误,我明白这与本地临时库的访问权限有关。 所以我的问题是:1)有没有解决scheme? 2)这是我的情况下,Excel文件坐在共享驱动器上的最佳连接策略? 连接代码: skuPath = "C:\path.xlsm" cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "data source=" + skuPath + ";Extended Properties=Excel 8.0;") q1 = "select * from [" + year + "$B4:V128]" da = New System.Data.OleDb.OleDbDataAdapter(q1, cn) cn.Open() da.Fill(ds, "Table1") cn.Close() dt = ds.Tables(0) 我收到错误cn.Open()。

使用GetOleDbSchemaTable读取Excel文件中的图纸顺序

我正在使用下面的ACE.OLEDB读取C#中的Excel文件。 我的Excel文件包含以下表格并按以下顺序排列: Sheet1,Sheet1(2),Sheet2 我的代码中的variablessheetName将'Sheet1(2)'作为第一个工作表,而不是'Sheet1'。 我的问题是如何确定工作表的顺序? string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; // Extra blank space cannot appear in Office 2007 and the last version. And we need to pay attention on semicolon. using (OleDbConnection conn = new OleDbConnection(connstring)) { conn.Open(); System.Data.DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] {null, null, null, "Table"}); […]

在C#中从Excel中读取值时设置精度

我需要使用c#OleDB连接读取Excel表格中的值。 Excel工作表具有数值和百分比值。 Excel单元格的值为0.25%。 但是单元的实际值是0.247337730504847% 当使用OleDB连接读取值时,我的DataSet给我0.25%,而不是0.247337730504847% 请帮忙。 下面是用于读取excel文件的连接string。 connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + filelocation + @";Extended Properties=""Excel 8.0;IMEX=1;HDR=NO"""; 更新: 其实我的Excel表格也有一些“会计”格式的单元格。 我需要阅读这些值。 所以我用IMEX = 1。 我需要完全精确的数值以及需要阅读会计格式的单元格。 请帮忙

使用OldeDbConnection读取第9行的Excel表格作为列名称?

我试图读取使用oleDbConnection和OleDbDataAdapter的Excel表,然后用这些信息填充数据集。 我需要弄清楚如何做的是忽略Excel表格中的前8行,并阅读它,就好像第9行是第一行(使列名称在第9行的值)。 谢谢,Alex

OleDbConnectionclosures方法需要很长的执行时间

conStr = String.Format(conStr, FilePath, isHDR); OleDbConnection connExcel = new OleDbConnection(conStr); OleDbCommand cmdExcel = new OleDbCommand(); OleDbDataAdapter oda = new OleDbDataAdapter(); DataTable dt = new DataTable(); cmdExcel.Connection = connExcel; //Get the name of First Sheet connExcel.Open(); DataTable dtExcelSchema; dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString(); connExcel.Close(); 我正在使用上面的代码来读取excel。 但它卡在connExcel.Close(); 几秒钟,然后移动到下一个语句。 这导致在页面上延迟处理。 有什么build议么?? 更新我的问题,以提供更多的细节。 testing用例: – 我上传了一个正常的时间xls文件。 […]

IMEX = 1不会将所有行作为文本返回

在阅读excel文件上工作。 第一列大部分是数字值,但靠近底部有5个字母的行。 当然oledb想要读取它们作为空白,因为它们不是数字。 我在扩展属性中设置IMEX = 1,但似乎没有工作。 Dim myConnection As System.Data.OleDb.OleDbConnection Dim dtSet As System.Data.DataSet Dim myCommand As System.Data.OleDb.OleDbDataAdapter myConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & fileName & ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1; MaxScanRows=0;'") myCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", myConnection) myCommand.TableMappings.Add("Table", "Net") dtSet = New System.Data.DataSet myCommand.Fill(dtSet) 还有什么我应该试图让它读取数字值和文本值? 我希望它只是像文字一样对待。

创build一个只有Excel而不是多个

处理完excel文件并添加一个从xml电子表格中取出的行后,保存每个文件后创build。 问题是我必须将所有内容保存在一个文件中。 你有什么解决办法? 非常感谢。 [code] public class RecordExcel { public string NumeroContratto { set; get; } public string CodiceCliente { set; get; } public string ImportoTassa { set; get; } public string CostoEsazione { set; get; } public string CostoContratto { set; get; } public string Spese { set; get; } public string Targa { […]