Tag: oledb

OLEDB读取excel混合数据types,无标题

我正在通过OLEDB连接将几个Excel电子表格读入数据集。 我遇到混合数据types的问题(特别是带有数字值和数字的文本,例如#######和## abc ##) 我试过在这个问题中提出的解决schemeOleDB和混合的Excel数据types:缺less数据 然而,经过进一步的研究,似乎TypeGuessRows = 0和ImportMixedTypes = Text在连接string中什么也不做,因为它们总是从registry中获取,对于此解决scheme我无法编辑。 上述解决scheme工作的唯一原因是通过设置没有标题(HDR = NO),以便具有标题的任何文件将始终将所有列设置为文本types。 我想处理的文件确实有混合的数据types,它没有标题行。 有谁知道一个解决scheme设置OLEDBDataAdapter读取文本types的所有列?

从Excel通过ACE.OLEDB sqlbulkcopy截断文本为255个字符

使用SqlBulkCopy非常简单直接的导入: string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1;\""; using (OleDbConnection excelConnection = new OleDbConnection(excelConnectionString)) { excelConnection.Open(); OleDbCommand cmd = new OleDbCommand("Select " + fileID.ToString() + " as [FileID], * from [Sheet1$] where [Text] IS NOT NULL", excelConnection); OleDbDataReader dReader = cmd.ExecuteReader(); using (SqlBulkCopy sqlBulk = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString)) { sqlBulk.DestinationTableName = […]

Excel OleDbCommand SELECT *不会select所有列

我下载了一个XLS电子表格,我试图将其导入到一个.net数据表中。 该表的结构如下: (没有名字的date栏),stream入(千瓦时),stream出(千瓦时),库存(千瓦时) ConnectionString是: " Provider=Microsoft.Jet.OleDb.4.0;Data Source=sheet.xls;Extended Properties="Excel 8.0;IMEX = 1" 事情不起作用: – "SELECT * FROM [Sheet1$]" selects: NoName, Inflow_(kWh), Outflow_(kWh) and the last column is missing – "SELECT [Stock (kWh)] FROM [Sheet1$]" returns: "No value given for one or more required parameters." – "SELECT [Stock_(kWh)] FROM [Sheet1$]" returns: "No value given for one or […]

在工作簿中创build一个没有标题ace.oledb的工作表

我怎样才能创build一个没有标题的命名表 – 就像默认表 – 通过ace.oledb? 表格的创build命令必须是这样的: CREATE TABLE [MySheet] (field1 type, field2 type …, fieldn type ) 它创buildMySheet并始终插入(无论连接string中的HDR扩展属性或registry设置FirstRowHasNames)MySheet中包含field1,field2 … fieldn的第一行 基本上我不想要一个“表头”那里,我只需要插入一个新创build的命名空白表中的值。

从Excel中读取与OleDbDataAdapter一些数字单元格进来科学记数法?

从Excel中读取与OleDbDataAdapter一些数字单元格进入科学记数法。 只有只有数字(有些可能包含字母)的string是六位或七位数字或更多。 我不可能在每个单元之前放一个''。 在新版本的Excel中,完全没有问题。 问题与旧版本(我认为是2003年,但我不确定) Dim dt As DataTable = dbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _ New Object() {Nothing, Nothing, Nothing, "TABLE"}) Dim dbAdapter As New OleDbDataAdapter("SELECT * FROM [" & strSheet & "] ", dbConn) 我已经试过了,我不知道该怎么做。 我试过按名称select每一列,并连接一个空string,我试着在连接string中添加IMEX = 1。 或修改registry: Private Function CheckRegKey() As Boolean Try Dim strRows As String = My.Computer.Registry.GetValue( _ "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel", "TypeGuessRows", "99").ToString Dim strTypes […]

如何使用OLEDB将DataTable复制到Excel文件?

我正在写一个程序通过使用oledb发送数据到excel。 我用Update语句如下: OleDbConnection MyConnection = new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + GeneralData.excelPath + "';Extended Properties=Excel 8.0;") MyConnection.Open(); OleDbCommand myCommand = new OleDbCommand(); myCommand.Connection = MyConnection; myCommand.CommandType = System.Data.CommandType.Text; string sql = "Update [test$] set press = " + pointsProperties[i].Pressure + ", temp = " + pointsProperties[i].Temperature + " where id= " + id; myCommand.CommandText = sql; myCommand.ExecuteNonQuery(); […]

OLEDB连接string失败 – Excel打开时除外…?

我试图在C#中使用Microsoft.Jet.OLEDB.4.0 **编程读取Excel电子表格(.xlsm格式)的内容。 我的连接string是: Provider = Microsoft.Jet.OLEDB.4.0; Extended Properties =“Excel 8.0; HDR = YES; IMEX = 1;”“; Data Source =”C:\ Test.xlsm“ 当我执行我的代码时,它会失败,出现一个exception,声明: OldDbException未被用户代码处理 外部表格不是预期的格式。 但是,如果我在Excel中打开Test.xlsm文件并重新运行我的代码,它将毫无例外地工作,并按预期执行。 没问题,效果很好。 为什么/如何在Excel中打开特定的文件会改变我的代码访问它的方式? 使用Microsoft Jet OLEDB提供程序打开.xlsm文件的正确方法是什么? 其他信息:运行Windows 7 x64 / Excel 2010

为什么Excel导入中不返回最后一行?

我用下面的连接string使用OleDbConnection: string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + "'{0}'" + ";Extended Properties='Excel 12.0 xml;'"; 我将Excel文件导入OleDbDataReader,然后使用reader.Read()读取行,如下所示: while (reader.Read()) { // import row } 出于某种原因,Excel文件的最后一行总是在导入中丢失。 我已经尝试了几个不同的Excel文件,但它从来没有工作。 出于绝望,我也在循环结束后再次尝试迭代,但它告诉我没有更多的数据。 可能是什么问题?

OLEDB写入excel的空间

我正在使用OLEDB将string写入Excel文件。 它有效,除了有时由于某种原因文本的开始/结束的空间丢失。 像“abc”或“abc \ r \ n”这样的东西变成了“abc”。 我注意到通过打开生成的文件在Microsoft Excel中,我看不到空间。 而当我使用OLEDB读取生成的文件时,我看不到空间。 更新:经过一些testing,我发现这不是因为OLEDB。 通过OLEDB生成excel文件后,我用一点excel自动化来格式化文件。 我做的事情非常简单,只是改变了2列的宽度,这一点代码以某种方式删除了空间。 任何build议表示赞赏。 excel = new Excel.Application(); excel.Workbooks.Open(file, 0, false, 5, System.Reflection.Missing.Value, System.Reflection.Missing.Value, false, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true); excel.Visible = false; foreach (var obj in excel.Workbooks[1].Worksheets) { Excel.Worksheet sheet = (Excel.Worksheet)obj; sheet.Columns["B"].ColumnWidth = 50; sheet.Columns["C"].ColumnWidth = 120; } excel.Workbooks[1].SaveAs(file, Excel.XlFileFormat.xlOpenXMLWorkbook, missing, missing, […]

使用OLEDB创buildxls工作表时的数据types

我有一个ASP.NET 4.0 web app ,它将数据从SQL Server 2008 R2读取到DataSet 。 现在我想把这个数据写入一个xls文件(Office 2003)。 目前,我使用CREATE TABLE创build一个空的工作CREATE TABLE ,并使用insert语句将数据逐行写入。 但是我真正想要的是根据数据集中的数据形成excel文件中的文件。 例如,如果数据集中的字段是system.decimaltypes,我希望excel中的相应列被格式化为十进制。 到目前为止,我在CREATE TABLE statement尝试了不同的数据types。 我尝试SQL datatypes (int,bigint,money,datetime,bit,nvarchar和xml是我的数据库使用最多的),我也尝试了几个Excel-specific datatypes以及几个OleDB特定的Excel-specific datatypes ,但没有成功。 数据被写入文件,但是列保持格式化为默认值。 一些详细信息: String AceConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + "; Extended Properties=\"Excel 8.0; HDR=YES; IMEX=0; READONLY=FALSE;\""; //filename is the target xls file **example CREATE TABLE statement (with SQL […]