Tag: wpf

导出数据表

我有一个WPF中的DataGrid,我想将信息导出到Excel电子表格。 我是C#的新手,对如何完成这个过程感到困惑。 有没有人有任何视觉例子来帮助我?

导入Excel工作表

当导入一个Excel工作表到一个WPF数据网格是有可能过滤一个头,不在第1行开始。我有一个Excel表开始第10行。如果这是可能的代码看起来如何。

将Excel导入到C#(WPF)时为什么要replace列名中的特定字符

将Microsoft Excel文件导入C#(WPF)时,列名(列标题)中的特定字符将被replace。 例如! 它变成_和. 到# 。 如何阻止它? ConnectionString的: Provider=Microsoft.ACE.OLEDB.12.0; Data Source="+filePath+";Extended Properties="Excel 8.0;HDR=YES;CharacterSet=65001;"; 和方法: public DataSet ImportExcel(string fileName) { tableList = null; DataSet ds = new DataSet(); string connectionString = GetConnectionString(fileName); using (OleDbConnection conn = new OleDbConnection(connectionString)) { conn.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = conn; // Get all Sheets in Excel File DataTable […]

如何在Excel中使用C#代码禁用所有单元格的剪切/复制选项?

/ ***** – EDIT– 解决scheme最终解决scheme真的很奇怪。 我使用的Interop程序集包含禁用单元格select( App.EnableSelection )的方法。 但它不起作用。 我安装MSOffice 2010(最初使用2007年)。 现在,安装了新版本的程序集,并且完全不需要更改代码,Excel表格在Excel2007和Excel2010上的performance都与预期一致。 我仍然无法理解大会上发生的事情,但终于解决了我的问题。 🙂 ***** / 我正在写一个编程生成一个Excel文件(这是一个薪水报告)的WPF应用程序。 我使用下面的代码保护了文件 myWorkSheet.Protect(Password); 保护工作正常,但我不希望用户能够将任何单元格数据复制到另一个工作表。 我试过使用下面的代码,但它不工作 myWorkSheet.Application.CutCopyMode = (Excel.XlCutCopyMode)0; 我仍然能够复制单元格数据。 出了什么问题? 注意:环境是.NET Framework 4.5,MSOffice 2007,Microsoft.Office.Interop程序集版本1.6.0.0 真奇怪的是Application.CutCopyModetypes为False , xlCut和xlCopy [1]: https : xlCopy 我正在使用的程序集版本不包含Falsetypes。 我应该升级到Office 2010吗? 我正在使用的COM参考是Microsoft Office 12.0对象库版本1.6。 我已经build议locking单元格并禁用它们的select,以防止用户复制单元格数据。 这是代码,但它不起作用。 不知道为什么。 Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = […]

Excel COMException Hresult:0x800a03ec当我尝试通过使用Interop的C#代码激活工作簿

我在WPF应用程序中运行多个Excel工作簿,embedded在WebBrowser中。 我正试图实现一种方法来切换工作簿。 这样做的方法是我想通过激活所需的工作簿,如果它已经在正在运行的Excel应用程序的工作簿的列表中。 码: internal void ActivateWorkBook(string wbName) { var xlApp = Marshal.GetActiveObject("Excel.Application") as Excel.Application; ((Excel._Workbook)xlApp.Workbooks[wbName]).Activate(); } 我在Activate()函数中得到exception。 有没有人有这个问题的解决scheme? 我知道我可以通过使用WebBrowsers.Navigate(filePath)在工作簿之间切换。 但是我想用上面的技术来做。

将excel文件合并到项目目录wpf c#

我有一些信息存储在Excel文件中,我想从Wpf应用程序读取它们。 我可以用这种方式读取这个文件: foreach (var worksheet in Workbook.Worksheets("ExcelFile.xlsx") ) { for (int j = 1; j < 30; j++) { _Data.Add(new Data { FirstElement = worksheet.Rows[j].Cells[0].Text.ToString(), }); } } ExcelFile.xlsx是解决scheme文件夹中保存的文件,并设置为“合并资源”。 如果我直接从Visual Studio启动应用程序,它的工作原理,但如果我复制编译的.exe文件,并将其发送给某人,它不起作用,因为xlsx文件丢失。 我的问题是:有没有办法将xlsx文件合并到.exe文件中,这样我就可以共享.exe文件,一切正常。 为什么将ExcelFile.xlsx文件设置为“ 合并资源 ”不能按我的想法工作? 谢谢你的帮助!

如果应用程序在使用interop进行读取/写入时closures,则互操作性不会释放Excel服务

我正在创build一个WPF应用程序。 当它第一次加载它从3个不同的Excel文件使用互操作,如果它留给自己的设备读取数据一切都很好,所有的服务都正常结束,但是如果你closures应用程序之前,它完成阅读,并释放一切服务将保持开放,直到手动closures。 下面是我已经有的代码的一些例子,这样你就可以知道我是如何做所有事情的。 这就是我如何在Excel类中调用方法*注意我的Excel类是静态的 Parallel.Invoke( () => _someList1 = Excel.ReadFile1(path + "ExcelFile1.xlsx"), () => _someList2 = Excel.ReadFile2(path + "ExcelFile2.xlsx"), () => _someList3 = Excel.ReadFile3(path + "ExcelFile3.xlsx")); 这里是我的Excel类中的方法的例子 public static IList<SomeObject> ReadFile1(string absolutePath) { object[,] values = StartRead(absolutePath); for (int i = 2; i < values.GetLength(0) + 1; i++) { //doing stuff in here } return […]

使用C#和WPFlocking/解锁合并的Excel单元格

我正在尝试使用下面的代码来解锁几个单元格。 这些单元格是相互合并的,我不想把它们分开,因为我在客户端的报价模板上工作,不想改变他的报价结构:)无论如何…这是代码: Excel.Worksheet ws = wb.Worksheets[1]; ws.Range["F25:F42"].Locked = false; //Error here 我得到一个错误说: 我们不能这样做一个合并的单元格。 有没有办法解决这个错误,以便我可以解锁/locking单元格?

导入Excel工作表到SQL Server获取错误“OLE DB提供程序”Microsoft.ACE.OLEDB.12.0“为链接的服务器”(空)“”

当我实现这个代码( Excel表到SQL Server )获取此错误。 无法初始化链接服务器“(null)”的OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象。 OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”用于链接服务器“(null)”返回消息“未指定的错误”。 我做了以下所有的事情, sp_configure'显示高级选项',1 重新configuration sp_configure'Ad Hoc Distributed Queries',1 重新configuration 还要安装2010 Office System驱动程序:数据连接组件 那么也是同样的问题。

C#打开Excel电子表格冻结UI(打开任务)

我有一个WPF应用程序,打开一个大的Excel文件。 问题出现在我实例化Excel工作簿时,UI冻结,即使实例化发生在任务内部。 这是UI中的代码: excelFile = new ExcelManipulator(dlg.FileName); Task launchExcel = excelFile.launchExcelAsync(); await launchExcel; 这是对象类中的代码: private void launchExcel() { workbook = excelApp.Workbooks.Open(Path);//problem! } public Task launchExcelAsync() { return Task.Run(() => launchExcel()); } 上课的一部分 public class ExcelManipulator { public string Path { get; } private Application excelApp { get; } public Workbook workbook { get; set; } […]