Tag: c#

C#默认情况下创build1张工作表的Excel工作簿

我试图用C#COM互操作创build一个Excel文件,但似乎它创build它默认3张,而不是空的或只有一个。 需要什么来创build它空的或只有一个: Excel.Application xl = null; Excel._Workbook wb = null; // Create a new instance of Excel from scratch xl = new Excel.Application(); xl.Visible = true; wb = (Excel._Workbook)(xl.Workbooks.Add(Missing.Value)); wb.SaveAs(@"C:\a.xls", Excel.XlFileFormat.xlWorkbookNormal, null, null, false, false, Excel.XlSaveAsAccessMode.xlShared, false, false, null, null, null);

Microsoft.Office.Interop.Excel参考无法find

我有麻烦添加Excel项目的引用。 我已经安装了主互操作程序集。 该项目正在检测Microsoft.Office.Interop.Word程序集引用,但仍无法findexcel引用。 当我尝试手动添加引用时,我右键单击项目,添加引用,导航到Microsoft.Office.Interop.Excel文件,并尝试手动添加它。 一旦我select参考我然后确保参考被检查,然后点击确定。 没有任何反应,它实际上没有添加参考path到项目。 使用VS2012旗舰版 任何build议,我可以做什么来让项目看到Excel的参考? 更新:问题修复。 在项目菜单上,单击添加引用。 在COM选项卡上findMicrosoft Excel对象库,然后单击select。 单击添加引用对话框中的确定以接受您的select。 如果系统提示您为所选的库生成包装,请单击“是”。

用OLEDB写入excel文件

有谁知道如何通过在C#中的OLEDB写入Excel文件(.xls)? 我正在做以下事情: OleDbCommand dbCmd = new OleDbCommand("CREATE TABLE [test$] (…)", connection); dbCmd.CommandTimeout = mTimeout; results = dbCmd.ExecuteNonQuery(); 但是我得到一个OleDbException抛出的消息: “不能修改表'test $'的devise,它是在一个只读数据库中。” 我的连接看起来不错,我可以select数据正常,但我似乎无法插入数据到Excel文件,有没有人知道我如何获得通过OLEDB的Excel文件的读/写访问?

EPPlus自动filter只能在最后一个单元上工作

我希望标题中的每个单元格都包含一个自动filter。 下面是我试图使用的代码,但是autofilter只能在指定的最后一个单元格上设置。 例如,如果我注释掉K1的autofilter命令,电子表格将被创build, C1是唯一一个带有自动filter的单元。 //Headers ws.Cells["A1"].Value = "ChannelCode"; ws.Cells["A1"].AutoFilter = true; ws.Cells["B1"].Value = "DrmTerrDesc"; ws.Cells["B1"].AutoFilter = true; ws.Cells["C1"].Value = "IndDistrnId"; ws.Cells["C1"].AutoFilter = true; ws.Cells["D1"].Value = "StateCode"; ws.Cells["D1"].AutoFilter = true; ws.Cells["E1"].Value = "ZipCode"; ws.Cells["E1"].AutoFilter = true; ws.Cells["F1"].Value = "EndDate"; ws.Cells["F1"].AutoFilter = true; ws.Cells["G1"].Value = "EffectiveDate"; ws.Cells["G1"].AutoFilter = true; ws.Cells["H1"].Value = "LastUpdateId"; ws.Cells["H1"].AutoFilter = true; ws.Cells["I1"].Value = […]

如何获得EPPlus OpenXML行数(c#)

我search了它,发现链接C#EPPlus OpenXML计数行 int iRowCount = currentWorksheet.Dimension.End.Row – currentWorksheet.Dimension.Start.Row; 但是这个计数值为4721。 这是给整个行数,我怎么可以得到具有价值的行的行数。 像UsedRange一样。

如何使用OpenXML从Excel表格中检索选项卡名称

我有一个电子表格文件,其中有182列。 我需要将电子表格数据放入一个数据表中,但是我需要从每个选项卡添加数据,选项卡名称是什么,并将选项卡名称添加到数据表中的列。 这是我如何设置数据表。 然后,我在工作簿中循环,深入到sheetData对象,遍历每一行和每列,获取单元格数据。 DataTable dt = new DataTable(); for (int i = 0; i <= col.GetUpperBound(0); i++) { try { dt.Columns.Add(new DataColumn(col[i].ToString(), typeof(string))); } catch (Exception e) { MessageBox.Show("Uploader Error" + e.ToString()); return null; } } dt.Columns.Add(new DataColumn("SheetName", typeof(string))); 然而,在我用于数据表的string数组的末尾,我需要添加标签名称。 如何在Open XML表单中循环查找标签名称? 这是我的代码到目前为止: using (SpreadsheetDocument spreadSheetDocument = SpreadsheetDocument.Open(Destination, false)) { WorkbookPart workbookPart = spreadSheetDocument.WorkbookPart; […]

如何从DataTable中删除空行

我正在从Excel工作表导入数据到数据库。 Excel工作表包含几个空行,我想删除这些空行,然后将清除的数据插入数据库。 我通过引用其他代码来编写代码,这是插入值的代码: OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + txtExcelFile.Text + "';Extended Properties= 'Excel 8.0;HDR=Yes;IMEX=1'"); //DataTable dt = new DataTable(); try { cnn.Open(); OleDbDataAdapter data = new OleDbDataAdapter("select * from [Customers$]", cnn); data.Fill(dsExcel); dgvCustomers.ColumnHeadersVisible = false; SqlConnection connection = new SqlConnection("Data Source=COMPUTER-8EB749;Initial Catalog=KITS;Integrated Security=true"); connection.Open(); for (int i = 0; i < dsExcel.Tables[0].Rows.Count; i++) […]

在Windows 10上使用Excel互操作不能打开超过11个Excel实例

在C#中使用Excel Interop,在具有16GB内存的Macbook Pro上的windows 10下,我无法打开超过11个Excel实例。 在第11个实例之后,我在“popup”中得到以下错误: “不能使用对象链接和embedded” 这是我使用的代码: List<Application> apps = new List<Application>(); for (int i = 0; i < 15; i++) { Application a = new Application(); apps.Add(a); } 每个Excel进程大约有15K的内存,远不及机器上的16GB … 我正在使用.NET Framework 4.5.2,Windows 10,MacBook Pro与16GB的内存和Excel个人。

如何使用ODBC驱动程序API使用C ++将数据绑定到SQLBindCol

我试图创build一个自定义的ODBC驱动程序使用C ++的Windows环境(如PostgreSQL,Simba,火鸟等),因为ODBC API默认情况下有多个ODBC API方法。 我使用DSNbuild立连接,并且能够使用SQLExecuteDirect方法执行SQL查询。 但是,将Excel与我们的ODBC驱动程序连接时,我无法将表列表绑定到Microsoft查询向导。 这里使用SQLTables() , SQLBindColumn()和SQLFetch()方法来检索表名列表。 数据使用SQLBindColumn方法绑定。 但我很困惑如何检索表名并将其绑定到Excel?

最快的方式打开Excel

我一直在使用Microsoft.Office.Interop.Excel库打开Excel,刷新一些查询并保存。 我遇到的问题是这只会工作,如果每台计算机具有相同的Excel库中所选的PC上安装的项目。 我看到NPOI可以http://npoi.codeplex.com/documentation读写数据到Excel,但是如何更简单的打开/刷新/保存任务,NPOI能够处理这个问题呢? 如果你使用这种语法,似乎我可以打开我的Excel文件,但刷新查询和保存呢? using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; private void button1_Click(object sender, EventArgs e) { HSSFWorkbook hssfwb; using (FileStream file = new FileStream(@"c:\test.xls", FileMode.Open, FileAccess.Read)) { hssfwb= new HSSFWorkbook(file); }