Tag: oledb

如何在查询中使用OLEDB.Jet for Excel文件使用分割string函数

我正在ASP.NET Web Forms 4.5中开发一个Web应用程序,它导入Access数据库中的Excel(.XLS,.XLSX)文件数据。 我需要实现一个查询将Excel工作表列分成两个不同的字段。 我的查询应该是这样的: string query = @"SELECT DISTINCT split(([MyExcelColumn], "" – "")(0) AS [CustomerID], split(([MyExcelColumn], "" – "")(1) AS [CustomerDescr] FROM [Sheet]"; // The separator string is " – ". // Executing the query DataTable dt = ExcelWorksheet.ListQuery(ExcelFileConnString, query); ExcelWorksheet.ListQuery是一个在Excel文件上执行列表查询的方法。 这是方法的实现: public static DataTable ListQuery(string connString, string query) { OleDbConnection conn = […]

从Excel导入数据到Sql Server 2008#2

string path = string.Concat(Server.MapPath("~/TempFiles/"), FileUpload1.FileName); //Save File as Temp then you can delete it if you want FileUpload1.SaveAs(path); string excelConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0", path); // Create Connection to Excel Workbook using (OleDbConnection connection = new OleDbConnection(excelConnectionString)) { OleDbCommand command = new OleDbCommand ("Select * FROM [Sheet1$]", connection); connection.Open(); // Create DbDataReader to Data […]

通过网页浏览器打开.xls / .xlsx文件,并为用户编辑

规范 使用.Net 3.5 / 4.0框架 Web应用程序C# 机器没有MS Office安装 问题:需要从Web浏览器打开Excel文件报告,以便用户编辑报告并将更新保存在Excel文件中。 (这是可能的?事实上,机器没有MS Office安装)。 通过代码:我只能读取文件,并通过网格显示,但不能编辑。 public void LoadExceltotheGrid() { string connectionString = ""; string fileLocation = MapPath("FileMe20140107.xlsx"); string fileExtension = Path.GetExtension(fileLocation); if (fileExtension == ".xls") { connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\""; } else if (fileExtension == ".xlsx") { connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + […]

不能绕过一个OLE DB错误

我目前收到以下错误: Microsoft OLE DB服务组件错误“80040e73” 初始化string的格式不符合OLE DB规范。 我的代码如下,正在创buildvariablesExportPath以创build唯一的XLS名称。 例如D:\RiskCheck\Website\demo\newsite\exports\Reporting_Export_NTQ0KZZU0T262014115941.xls set cnn=Server.CreateObject("ADODB.Connection") cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source="&ExportPath&";" & _ "Extended Properties='Excel 8.0;HDR=YES;';" 这个问题已经让我绝对精神整个上午,谷歌find的许多修复没有成功,任何意见,而不是欢迎!

在一个连接上多个OleDbDataReader:确定它正在这种情况下工作

我在一个OleDbConnection网上search了多个OleDbDataReader,但所有的答案是否定的,但是,这个代码工作没有错误。 这是为什么? Dim DATA_BASE_Name As String = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) & "\TABLES.XLS" Dim ConnectionStringBuilder As New System.Data.OleDb.OleDbConnectionStringBuilder ConnectionStringBuilder("Provider") = "Microsoft.Jet.OLEDB.4.0" ConnectionStringBuilder("Data Source") = DATA_BASE_Name ConnectionStringBuilder("Mode") = "ReadWrite" ConnectionStringBuilder("Extended Properties") = "Excel 8.0;HDR=No" Dim XLS_DATA_BASE As OleDbConnection = New OleDbConnection(ConnectionStringBuilder.ConnectionString) XLS_DATA_BASE.Open() Dim Command As OleDbCommand = New OleDbCommand Dim Command2 As OleDbCommand = New OleDbCommand Command.Connection = XLS_DATA_BASE […]

如何在Excel中插入数据如果列名包含'#'在c#

我能够成功地使用c#将值插入到我的Excel文件中。 但是,当我的列名包含“#”(例如Target_Group# ),我得到这个错误: 未知的列名称 但在我的Excel列名应该是“Target_Group#” 我的插入查询是: string query = "INSERT INTO [Sheet2$] ([Target_Group#]) VALUES('OHMCRWP0')"; 我正在使用OLEDB connections

使用VB.net和Excel(combobox和search)

编程新手,需要在VB中使程序与后台的Excel进行交互 想法是有两个combobox,一个“国家”,另一个“城市”(如果select的国家,城市名单将减less到该国;如果select城市,则自动select国家); 我有一个DataGridView,它显示了两个来自excel speadsheet,人的拳头名称和姓氏的列。 所以考虑到这个城市或者一个国家/城市,一个人的名单将被展示在那个国家。 此外,我正在努力build立一个search框,当你键入一个文本字段时,给定你到目前为止input的内容,它将过滤GridView中的名字(包含你input的内容)。 到目前为止,我已经设法得到其他的工作,如单选button和checkbox不同的选项。 我找不到任何可以用于combobox和search字段的工具(没有button,所以需要进行“实时”过滤过程)。 我很熟悉SQL,因此我一直在使用sql向excel发送查询并检索网格视图的信息。 能否请你帮忙? (可能会提供我如何编码的模板….) 我正在使用Visual Basic 2012和OleDB 4.0(如果我没有错)进行连接。 鉴于下面的评论,我find的search栏的解决方法是创build一个button,然后使其尽可能小,并隐藏在search栏后面“发送到后面”,使其看起来似乎完全禁用它… 然后,我已经使用下面的代码为button: Private Sub BtSearch_Click(sender As Object, e As EventArgs) Handles BtSearch.Click Try FillSearchResults("SELECT First_Name, Last_Name FROM [Database$] WHERE Country LIKE '%" & Country.Text & "%'") Country.Text = dt.Rows(0).Item(1) Catch ex As Exception MsgBox("Not Found") End Try End Sub 对于文本字段(使用户点击Enter时search结果): […]

如何解决在SQL中导出巨大的Excel数据时“外部数据库驱动程序出现意外错误”(后面跟着中文字符)

当我尝试将数据从Excel文件导入到SQL数据库时,出现如下错误: 来自外部数据库驱动程序的意外错误(霰呫潈ూŐీL)。 我的代码: private void Import(string fileFullPath, string fileName, StreamWriter writer) { string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileFullPath + ";Extended Properties=" + (char)34 + "Excel 12.0;HDR=YES;" + (char)34; using (OleDbConnection cn = new OleDbConnection(ConnectionString)) { cn.Open(); DataTable dbSchema = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dbSchema == null || dbSchema.Rows.Count < 1) { writer.WriteLine("Error: Could not determine […]

C#创buildExcel文件 – JET.OLEDB.4.0和ACE.OLEDB.12.0以不同的date格式输出相同的数据列

我有一些有趣的事情发生,我似乎无法find任何东西,虽然我发现了一些类似的案件有趣的信息。 我正在尝试在仅使用OLEDB和ADO.NET的服务器(即Windows 2003 Server 32位)上创buildExcel工作簿。 (我尝试了ADO,但它根本不起作用 – 不同的故事)。我使用CREATE TABLE语句生成Excel工作簿,然后使用INSERT INTO语句将值添加到电子表格中。 我遇到的问题发生在我的开发机器 – Windows 7 64位笔记本电脑上。 我还没有把它移到生产环境(服务器)。 我拉的数据存储在一个数据表(System.Data),并来自一个MS Access数据库。 电子表格的连接string有所不同,具体取决于我是否尝试创build较新的格式或较旧的格式。 下面是这个事情:当我使用Microsoft.Jet.OLEDB.4.0作为提供者时,我得到了一个电子表格,这个电子表格至less是没有吸引力的,但是却拥有正确格式的所有正确的数据。 特别是,我在这里谈论date栏 – 它们被格式化为m / d / yyyy,这是正确的。 当我使用Microsoft.ACE.OLEDB.12.0作为提供程序时,date格式(从完全相同的数据表)格式化为格式为yyyy-mm-dd hh:mm:ss的string。 我不知道为什么这两个数据都不是相同的格式。 我检查了其中一个date列的数据表的数据types,并且无论我使用哪个提供者,它都检查为DateTime。 这里是使用的连接string: OleDbConnection cn = new OleDbConnection(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data source={0}{1};" + "Extended Properties='Excel 12.0 Xml;HDR=YES;'", ssPth, ssXlsx)); 第二个是: OleDbConnection cn = new OleDbConnection(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data source={0}{1};" + "Extended Properties='Excel […]

使用C#Asp.net Web应用程序将ibfs(从网站下载的Excel文件)文件转换为.xls / .xlsx文件格式

我有一个要求,我需要从不同的资源格式input文件。 我的应用程序通过file upload接收input(xls / xlsx / ibfs )文件,并执行条件检查并以.xlsx文件格式生成格式化的输出。 我所有的input文件都是由不同的在线公共数据报告网站生成的报告。 当我以excel格式下载某些网站正在生产“WFServlet.ibfs”文件格式。 这不是一个重复的职位。 我尝试了不同的方法,并在这里提出了build议,尝试了几种方法,但没有解决我的问题。 对不起,很长的职位。 我希望有前辈build议或帮助解决这个问题。 我能够使用C#OLEDB ACE引擎处理xls和xlsx文件格式。 它在我的本地机器以及我本地托pipe的IIS服务器中工作得非常好。 但是当我上传.ibfs文件格式时,我得到的问题。 示例input 在这里,我发布了我最有效的两种不同的方法: 方法1(使用Microsoft Office Interop) 方法2(使用第三方EPPlus库) 1.方法1(使用Microsoft Office Interop): 在这种方法中,我使用了Microsoft Interop dll。 最初在转换之前,我将.ibfs的扩展名更改为.xls,然后使用Microsoft Interop将xls转换为xlsx文件格式。 在这种方法,它在我的本地机器工作正常。 但它不能在我的本地IIS服务器上工作(在我的本地IIS服务器中,我可以将扩展名从.ibfs改为.xls,但是之后不会从xls创buildxlsx文件) 。 我添加了Office12“Microsoft.Office.Interop.Excel.dll”和“Office.dll”的DLL到我的项目参考。 但是用这种方法,我将来可能会遇到问题。 目前Office安装在本地机器上,但是当我们将代码移动到服务器时,我们没有安装Office, 客户端也不想在服务器上安装Office。 我不确定它是否会在没有安装Office的同一个DLL的服务器上工作。 以下是代码: 步骤1:如果用户上传的文件是.ibfs文件types,则将.ibs扩展名改为.xls并调用转换方法 string path ="C:\\testinput\\"; string extension = Path.GetExtension(InputFile.FileName); // get the extension of user […]