Tag: c#

试图将数据拉入C#时发现“无法find可安装的ISAM”错误

我目前正在从excel导入到C#,但这是第一次这样做,我以为我有解决了一些其他问题后,连接工作,但我现在正在接受上述错误。 代码的构build非常好,我找不到任何其他问题,任何人有任何想法? using System; using System.Collections.Generic; using System.Data.OleDb; using System.Linq; using System.Text; using System.Threading.Tasks; namespace test_excel { class Program { static void Main(string[] args) { // @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';" string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Users\Joshua.cameron\Documents\BullenGrosvenorTest\EstatesITExportSpec.xlsx';Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1;';"; // @"Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1'"; using (OleDbConnection connection = new OleDbConnection(con)) { connection.Open(); […]

如何检查Excel是否打开,如果是,保存并closures它C#

我想检查excel是否打开。 如果是这样,我想保存活动工作簿并closuresexcel。 从本质上讲,我的目标是杀死所有的excelstream程,但是在这之前我想保存excel工作簿。 这是我的代码… Process[] localByName = Process.GetProcessesByName("excel"); for (int i = 0; i < localByName.Length; i++) { Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); Workbook wb = xlApp.ActiveWorkbook; wb.Save(); // I get an error here. "Object reference not set to an instance of an object". GC.Collect(); GC.WaitForPendingFinalizers(); wb.Close(); Marshal.FinalReleaseComObject(wb); xlApp.Quit(); Marshal.FinalReleaseComObject(xlApp); } 我读了xlApp.ActiveWorkbook以只读模式获取工作簿。 这可能是我的问题吗? 如果是这样,请提出一个成功的方法去解决这个问题。 谢谢!

Aspose公式有一个列索引改变的问题

我在windows(C#)应用程序中使用aspose 8.0.1.0。 当我设置一列的公式为 sheet1.Cells[3, 2].Formula = "='Supplies – Factor'!G757222"; 公式自动更改为 "='Supplies – Factor'!G36326" 我已经使用debugging器进行了validation。 如果我将公式设置为 “='用品 – 因子'!G757222” 然后它自动改变 “='用品 – 因子'!G36326” 任何想法为什么发生这种情况?

从C#写入Excel工作表

如果我使用C#创buildExcel电子表格/文件工作表,此代码仅处理数据。 如果我提供它已经创build的Excel文件进​​行编写或操作,它会抛出一个exception: “Microsoft Access数据库引擎找不到对象'Sheet1'(在Excel中引用的Excel文件中的工作表)。确保对象存在,并且正确拼写其名称和path名。如果'Sheet1'不是一个本地对象,请检查您的networking连接或联系服务器pipe理员。“ 这是我正在尝试的代码: string con = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:\Temp\table1.xlsx;" + @"Extended Properties= 'Excel 12.0 Xml; HDR=YES;' OleDbConnection connection = new OleDbConnection(con); connection.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = connection; cmd.CommandText = "CREATE TABLE [table1] (id INT, name VARCHAR, datecol DATE );"; cmd.ExecuteNonQuery(); cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(1,'AAAA','2014-01-01');"; cmd.ExecuteNonQuery(); cmd.CommandText = "INSERT […]

VSTO和.XLL之间的通信

在Visual Studio中,我有一个解决scheme。 在这个解决scheme中,我有2个项目。 一个是VSTO,所以我们可以为Excel创build一个插件。 另一个项目是用来创build一个.xll文件,以便我们可以有自定义函数。 VSTO帮助我们在excel上创build一个login系统,以便他们可以做某些事情。 但是,因为我们只希望我们的用户能够使用我们的自定义函数,他们必须login。我认为这两个项目不能直接通信,所以.xll插件不会知道用户是否login。 这两个项目有没有交stream? 也许通过一个像静态variables类的中间人? 编辑: 更多信息: 这两个项目都是用C#代码编写的。 我可以通过使用ExcelDNA为.xll文件做到这一点。 因此,如果有什么办法可以创build一个C#类,它可以在两个项目之间协调或共享数据,这将非常棒。 由于login数据不是我们想分享的唯一东西。 我希望在类中将有一个静态布尔variables保持用户是否login。所以VSTO可以设置布尔值和.xll可以得到它。

如何在第一次打开应用程序时减less时间将Excel文件数据加载到C#应用程序中

我是新来的C#,我有我的C#Windows应用程序中的一个问题。 我创build一个Windows应用程序在C#中,它成功地工作的所有任务,但是当我试图打开我的C#Windows应用程序第一次需要大约1分30秒,因为一个Excel文件是在第一次尝试时加载应用程序打开应用程序。 这个excel文件用于“AutoCompleteStringCollection”。 请参阅下面的代码,并build议我的解决scheme,我可以减less时间到我的应用程序开放时间。 private void Form1_Load(object sender, EventArgs e) { InitializeTextSearchListView(); textBox1.AutoCompleteMode = AutoCompleteMode.Suggest; textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource; AutoCompleteStringCollection DataCollection = new AutoCompleteStringCollection(); addItems(DataCollection,listView1); textBox1.AutoCompleteCustomSource = DataCollection; } public void addItems(AutoCompleteStringCollection col, ListView ListView1) { Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; Excel.Range range; object missing = System.Reflection.Missing.Value; string str; int rCnt = 0; int cCnt […]

测验:计算组合天数

我想计算不同types的天数,我可以有我的设定值相等。 例如,如果某人有30天年假作为就业的一部分,我想计算他们可以采取什么不同的假期。 一个例子是: 5,10,5,2,2,1,5 正如你可以看到上面将等于30。 计算的想法是让潜在员工知道他们可以rest几天。 返回的值也可以是: 10,10,10 这意味着我需要计算等于总年假数量的号码组合。 挑战可以用任何编程语言完成! 我已经尝试了以下内容: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { // find all possible combinations of this list var input = new[] { "1", "2", "3", "4", "5", "6","7","8","9","10","11","12","13","14" }; var output = […]

ExcelDNA – 创build一个表:xlcAddListItem或其他方式

我想弄清楚如何使用ExcelDNA从ExcelReference范围创build表。 使用Excel,您通常会执行以下操作: range2.Worksheet.ListObjects.Add(Microsoft.Office.Interop.Excel.XlListObjectSourceType.xlSrcRange, range2, System.Type.Missing, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlYes, System.Type.Missing).Name = "uniquesomething"; 我一直在尝试使用ExcelDNA来xlcAddListItem与ExcelDNA类似的东西,但是如果没有任何适当的文档,这很粗糙。 有没有人有成功? 基本上采取ExcelDNA数组调整器的例子,然后把网格输出,把它变成一个表。 到目前为止我尝试过 ExcelDna.Integration.SourceItem mySourceItemHopefully = (ExcelDna.Integration.SourceItem)XlCall.Excel(XlCall.xlcAddListItem, 1, myExcelReference); mySourceItemHopefully.Name = "uniquesomething"; 但是我得到一个访问冲突错误。

在一个SpreadsheetGear单元格中提取各种文本格式的细节

我在格式不同的单元格中有一些文本,我们假设:“这是 在一个单元格内的混合风格” 我可以访问文本内容, IRange的Interior属性提供了颜色数据(除其他外), IRange也有Style属性,它提供了Font数据,它可以判断文本是粗体还是斜体。 在我的情况下,但是我可能在一个单元格中有不同的样式。 我怎样才能解压?

加载ExcelDna .xll插件的自定义function区

我有一个Visual Studio项目来创build一个.xll插件。 在那个项目中我有一个Main.cs文件和一个Functions.cs文件。 Functions.cs文件存储将在Excel中使用的UDF。 我有另一个项目,为Excel创build一个function区。 在那个项目中是一个Ribbon.xml和Ribbon.cs文件。 我将这两个文件移到了.xll项目中。 但我不知道该怎么做,以便当用户将.xll文件安装到他们的Excel中时,自定义function区选项卡也会显示。 顺便说一句 ,我是一个初学者,我正在做这个实习。 所以要么我真的找不到任何的讨论,要么我不明白人们在讨论什么。 所以我很抱歉,对于你来说可能看起来很简单的问题。