Tag: visual studio

C#VS2005导入.CSV文件到SQL数据库

我想导入一个.csv文件到我的数据库。 我可以导入一个Excel工作表到我的数据库,但是由于.csv和.xls文件格式不同,我需要为.csv创build一个导入函数。 以下是我的代码: protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { // Get the name of the Excel spreadsheet to upload. string strFileName = Server.HtmlEncode(FileUpload1.FileName); // Get the extension of the Excel spreadsheet. string strExtension = Path.GetExtension(strFileName); // Validate the file extension. if (strExtension != ".xls" && strExtension != ".xlsx" && strExtension != […]

从具有超过280列的特定Excel工作簿表批量插入

任何人可以build议我该怎么做,因为我使用Openrowset,但它没有效果不错的工作表包含variables列的variables。 Dim sConnectionString1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & exfname & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""" Dim con As New OleDbConnection(sConnectionString1) objCmdSelect = New OleDbCommand("SELECT * FROM [sheet 12$]", con) Dim dr_x As OleDbDataReader con.Open() dr_x = objCmdSelect.ExecuteReader() con.Close() 这在大约240列的情况下效果很好,但是如果它超过256,则会出错,连接不会打开。 所以我决定使用批量插入到临时表,可以任何人build议如何批量插入从特定的工作簿我已经尝试 select * into test1 from ( select * from OpenRowset( 'Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\Documents and Settings\VIKKY\My Documents\Downloads\alvin\xyz.xls', […]

excel xll for 64bit excel

我有一个c ++代码创build一个xll,可以打开成32位excel和完美的作品。 我切换到64位Excel和代码停止工作。 我已经重新编译在Visual Studio 64平台的代码。 汇编没问题,没有错误。 但是当我尝试加载它在64位Excel中,Excel无法识别文件扩展名。 它抱怨说“无法识别的文件扩展名…”,并给我select继续打开是/否/取消。 如果我忽略消息,并按是的插件崩溃,我得到“无法打开DOS模式下的程序”错误。 问题是因为插件编译好,我不知道如何排除错误。 任何人都可以给我任何指导如何克服这个问题。 1> 64位Excel必须认识到它是有效的插件(我想第一个消息“无法识别的文件扩展名”必须离开) 2>我怎么才能找出什么是错误的“不能在dos模式下打开程序”的错误。 在此先感谢您的帮助。

Excel 2010 vs Excel 2003中整数的表示(C ++插件)

介绍 我inheritance了VS2008,xlw 2.0和excel 2003开发的传统插件项目(用C ++编写)。 我已经设法将其移植到xlw 4.0头(当添加对Excel 2007的支持时,某些方法更改了名称,类似的东西)。 我还没有产生任何东西,因为旧的代码是手工编写的,我不会改变一些正在工作的东西,而只是为了它而具有合理的结构和代码逻辑。 代码在excel 2003下按照预期工作。我今天用excel 2010试了一下,发现了一个最令人困惑的(和可怕的)错误。 令人费解的行为 我收到(从VBAmacros)一列(n行1列)的数字(通过build设小正整数)作为XlfOper&,我想将其转换为(旧式)arrays。 代码基本上遍历每一行,然后调用对应于给定行的XlfOper上的AsInt()方法。 就像是: for (long iy = 0; iy < numcols; ++iy) { for (long ix = 0; ix < numrows; ++ix) convertXflOper( x(ix, iy), a1D[iy*numrows + ix] ); } 其中a1D是此特定项目中使用的1维数组types,convertXflOper是一个模板函数,适用于以下types: void convertXflOper (const XlfOper &x, long & y) { y = […]

运行excel工作簿时,“价值不在预期范围内”

我正在运行一个利用VSTO文件的Excel工作簿,但是当打开工作簿时,出现以下错误 Name: From: file:///C:/Users/Daniel/Documents/Twitter Analytics/TwitterAnalytics.vsto ************** Exception Text ************** System.ArgumentException: Value does not fall within the expected range. at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) at Microsoft.VisualStudio.Tools.Office.Runtime.Interop.VSTOEENativeMethods.GetValidCompatibleFramework(String compatibleFrameworkXml) at Microsoft.VisualStudio.Tools.Office.Runtime.CompatibleFrameworksValidation.ParseFirstValidFramework(String compatibleFrameworksXml) at Microsoft.VisualStudio.Tools.Office.Runtime.OfficeAddInDeploymentManager.OnAddInManifestsDownloaded(AddInManifestsDownloadedArgs args) at Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.RaiseOnAddInManifestsDownloadedEvent(IClickOnceAddInInstaller addInInstaller, Uri deploymentManifestUri, AddInInstallationStatus addinSolutionState, String productName, String deploymentManifestXml, String applicationManifestXml, String hostManifestXml, String logFilePath, String version, Uri supportUri) at Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()

从Excel文件读取特定列到C ++

我相对较新的C + +(我知道的基础知识,并通过自己成功通过程序),并试图创build一个项目,以减轻一些我需要的信息的数据处理。 数据input是一个30000行和27列的Excel文件。 在这些数据中,我需要提取4个特定的列(总是列2,8,14和20),我想把每列放入一个单独的数组中,第一列应该由string组成,第二列和第三列整数和最后一个string。 由于第一行包含列描述,因此尝试并省略第一行也是一个好主意。 excel文件目前采用“.xlsx”格式。 我花了整整两天的时间研究这个问题,并没有从哪里开始。 我阅读将文件types转换为“.csv”格式,并使用名为“stl”的东西可能是有用的,但与我有我觉得完全不能这样做的信息。 我不希望有人能为我解决这个问题,如果有人能指出我的方向是正确的,不pipe在哪里寻找我需要的信息,或者开始我的工作。 一旦我设法将数据读入数组,我实际上知道如何对处理进行编程,但是这部分欺骗了我。 感谢您的帮助和时间阅读。

什么是从Excel.Range.find返回“什么”在C#

当API告诉我函数什么都不返回时,什么对我来说没有意义? 我是否需要使用try-catch块来调用这个函数? 如果我试图设置一些什么东西,它会给我一个问题吗? 基本上…什么是处理“无”的正确方法? Excel.Range headers = exSheet.Range[exSheet.Cells[1], exSheet.Cells[numCols]]; Excel.Range columnHeader; //some code… columnHeader = headers.Find(columnList[i]); 文档- 如果找不到匹配项,此方法返回Nothing 。 Excel.Range.Find 在阅读文档时,我发现这个方法返回的是Microsoft.Office.Interop.Excel.Range ,这很好,但是我知道我之前遇到了另一个返回Range ( Range.SpecialCells )的函数,我不得不使用try-catch如果没有find特殊的单元格,为了确保我不会崩溃程序。

将自定义数据存储在Excel中AddIn C#

我用C#和Visual Studio 2015创build了一个Excel Addin。现在我想存储一些表单特定的数据。 有没有办法将用户数据存储在一个自定义的Excel对象中,该对象将由xlsx文件中的Excel序列化? 我不知道如何处理。

在VB.NET CDbl和十进制分隔符 – 有没有办法绕过区域设置?

我正在编写一个程序,用于从Excel工作表中分析和处理信息(文本和数字)。 我面临一个奇怪的问题,有关将单元格数据转换为Doublevariables。 大多数时候,并感谢Microsoft.Office.Interop.Excel导入,我使用: var = CDbl(sheet.Cells(row,column).Value) 但是,我的工作表(由数千行组成)包含用“。”表示的十进制数字。 和“,”。 在我国,“,”被认为是小数分隔符,所以像“1.23456789”这样的任何数字都会引起CDbl的exception。 我find了一个解决方法,它不是使用.Value,而是使用单元格的.Text,并使用Replace()去除“。”: var = CDbl(sheet.Cells(row,column).Text.Replace(".", ",")) 但是,由于我操作的工作表的长度,这大大增加了我的执行时间。 什么是最快的方法来做到这一点? 有没有办法告诉Visual Studio摆脱区域设置,并考虑“。” 和“,”一样? 还有其他build议吗? 非常感谢你。 🙂

VB.Net – Excel应用程序显示一个范围的值

我试图得到一个Excel范围,并复制到与Vb.Net对象的数组。 这不是问题。 我使用下面的代码: Dim vValues(,) As Object = ExcelApp.Range(vRange).Value 并且工作正常; 但我有以下情况: 在“C”栏中; 该值具有特定的格式并且在内部具有另一个值。 我的问题是: 有人知道如何获得用户看到的信息? 我试图获取信息,而不使用For … Each或某种types的周期。 我也试图避免使用“文本到列”function。 两者似乎都是正确的解决scheme,但会影响大量数据的性能。 仅供参考:我也可以通过ODBC连接获取信息; 但我正在使用Rangesearch解决scheme