Tag: c#

读取XML并保存到Excel C#

我有XML如下,我需要阅读这个XML,并在XML中获取特定的元素,并保存到Excel中。 以下是我的XML文件: <?xml version="1.0" encoding="UTF-8"?> <ns1:BookTestXMLExport StartTime="2016-09-20T12:58:15.000+07:00" scanTime="2016-09-20T12:58:15.000+07:00" scanStatus="Pass"> <ns1:MachineXML barCode="ISN-1000500213" Revision="2016A" bookType="Novel"/> <ns1:StationXML scannerName="HP4512745" stage="v810"/> <ns1:ScanXML name="32:2:165:1"> <ns1:IndictmentXML algorithm="NIL" subType="17X8X15MM" imageFileName="175228000_9_0.jpg"> <ns1:BorrowXML packageId="NIL" userId="NIL" name="NIL"/> <ns1:BookXML name="GrayDay" desc="Love Story"/> </ns1:IndictmentXML> </ns1:ScanXML> <ns1:ScanXML name="35:23:165:1"> <ns1:IndictmentXML algorithm="NIL" subType="17X8X15MM" imageFileName="175228001_9_0.jpg"> <ns1:BorrowXML packageId="NIL" userId="8799" name="Sharon"/> <ns1:BookXML name="Harry Potter" desc="Magic"/> </ns1:IndictmentXML> </ns1:ScanXML> </ns1:BookTestXMLExport> 以下是预期结果: 预期结果 任何人都可以指导我这个。

如何从Excel互操作事件线程更新GUI控件?

我有一个C#GUI应用程序,通过官方的互操作COM库自动化一些Excel任务。 我正在为SheetActivate事件提供我自己的事件处理程序。 // fetch the excel handle var excel = viewer.GetApplication() as Microsoft.Office.Interop.Excel.Application; // set sheet activate event handler excel.SheetActivate += excel_SheetActivate; 我相信互操作库从它创build的线程调用这个事件处理程序。 我的问题是,我需要更新基于这个事件的一些GUI组件,但是我不能在这些线程上的GUI上执行更新操作。 我的问题是,从这个优秀的互操作事件处理程序,我相信是在自己的线程,我怎样才能安全地更新我的graphics用户界面以线程安全的方式? 我问这是因为我目前正在接收更新GUI时有关跨线程操作的运行时错误。 编辑:我相信链接和build议可能的答案是WPF。 我的应用程序不是WPF,它是较早的WinForms。 我没有看到一个Application.Current属性。

互操作中没有xlOpenXMLWorkbook

我有一些代码试图使用Interop将.xls电子表格转换为.xlsx电子表格: public void Convert(string file) { var app = new Microsoft.Office.Interop.Excel.Application(); var wb = app.Workbooks.Open(file); wb.SaveAs(Filename: file + "x", FileFormat: Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook); wb.Close(); app.Quit(); } 但是,我收到一个错误,说xlopenxmlworkbook' is not a member of 'microsoft.office.interop.excel.xlfileformat' 这导致我无法保存.xls文件,因为Excel 2003不支持Excel 2003文件和.xlsx文件。 我有Office 2013安装,所以不应该是一个问题。 有没有办法将xlopenxmlworkbook添加到DLL或更新它? 或另一个解决方法?

我在使用C#创buildExcel图表时遇到问题

在通过代码创buildExcel图表时遇到两个问题。 问题1是我想知道我应该如何设置图表属性来创build让我们说Cell [10,2],因为它在包含数据的单元格上绘制graphics。 下面是我用来创buildExcel图表的代码。 Excel.Range chartRange; Excel.ChartObjects xlCharts = (Excel.ChartObjects)sheet2.ChartObjects(Type.Missing); Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 80,500,200); Excel.Chart chartPage = myChart.Chart; chartPage.HasTitle = true; chartPage.ChartTitle.Text = "CHART from Code"; chartRange = sheet2.get_Range("B2", "M"+xlRow); chartPage.SetSourceData(chartRange, Excel.XlRowCol.xlRows); chartPage.ChartType = Excel.XlChartType.xlColumnStacked;` 现在第二个问题是,它创build了一个graphics,但它也使用graphics中的图例和图例的传说部分中的图例显示了series1,series2等等。 我希望你们明白我面临的问题。 期待着答复。

如何将DateTime,TimeSpan,string和双精度值从WPF MVVM应用程序导出到Excel?

在我的WPF MVVM Prism应用程序中,我每秒从外部设备读取一些数据(通过COM端口)(我使用System.Windows.Threading.DispatcherTimer)。 每次我读取数据填充以下缓冲区: /// <summary> /// Represents the point on the chart. /// </summary> public class ChartPoint { #region Fields // The value from outer device. private double _value; // The date and time when the value was being obtained. private DateTime _category; #endregion #region Constructors public ChartPoint() { } public ChartPoint(DateTime category, double […]

尝试将数据导出到Excel时出错。

我有一个button,从telerik的RadGrid导出到Excel文档的数据。 但是,当我尝试导出时遇到以下错误: [System.Threading.ThreadAbortException]: {Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.} 这是我的代码: private void GenerateFile(object structure, string fileName) { Workbook workbook = structure as Workbook; var formatProvider = new XlsxFormatProvider(); try { using (MemoryTributary ms = new MemoryTributary()) { Response.ClearHeaders(); Response.ClearContent(); Response.ContentType = […]

为什么试图创build数据透视表(Excel Interop)失败?

根据我在这里find的代码,我试图创build一个像这样的数据透视表: var range = _xlSheet.Range[_xlSheet.Cells[6, 1], _xlSheet.Cells[6, _grandTotalsColumn]]; ListObject tbl = WriteToExcelTable(_xlSheet, "tbl", "A6"); var pch = _xlBook.PivotCaches(); pch.Add(XlPivotTableSourceType.xlDatabase, "Produce Usage by Month!A6:F94") .CreatePivotTable(tbl, "PivTab1", Type.Missing, Type.Missing); . . . public ListObject WriteToExcelTable(Worksheet WSheet, string TableName, string CellStr = "A1", bool ClearSheetContent = false) { Range range; if (ClearSheetContent) WSheet.Cells.ClearContents(); // clear sheet content // […]

在读取Excel表格数据的同时保留空列名称

我正在阅读一个excel文件并将内容保存到数据库。 我有两列,第一列名是空白,第二列名是A.两列都有它下面的行。 当我使用oledbconnection执行"select * from ["+excel[i]+"]")时, 空列自动replace为F1。 我需要列表和数据,因为它可以从Excel工作表中获得。 如何避免它?

Excel._Worksheet中的单元格没有正确填充数据

在我的文章' 如何将DateTime,TimeSpan,string和双精度值从WPF MVVM应用程序导出到Excel? '我问如何使用VSTO从WPF MVVM应用程序中导出MS Excel。 不等待答案,我决定尝试自己去做。 我的电脑上有'MS Excel 2016 MSO(16.0.4432.1000)64-bit版本'。 我一直在写下面的代码来实现导出。 // Exports to MS Excel. private async void exportToExcel() { await Task.Run(() => { // Cell index. int cellIndex = 2; // MS Excel application instance. Excel.Application oXL = null; // Work book. Excel._Workbook oWB; // Active work sheet. Excel._Worksheet oSheet; // Cell […]

使用NPOI将数据从一页复制到另一页

我是新来的C#和Excel,我试图从一张表(这是充满了数据)复制到一个新的空的数据。 我正在使用NPOI,我已经想出了一些东西,但是在添加数据时遇到了问题。 第二张是空的,所以所有的单元格都是空的(如果我错了,请纠正我)。 当我尝试将数据从第一张表复制到第二张时,没有任何反应:单元格没有填充。 using (FileStream fs = new FileStream(@"C:\Users\MyDoc.xlsx", FileMode.Open, FileAccess.ReadWrite)) { XSSFWorkbook templateWorkbook = new XSSFWorkbook(fs); //Load the sheets needed var sheettoget = templateWorkbook.GetSheet("Sheet1"); var sheettoadd = templateWorkbook.GetSheet("Sheet2"); XSSFRow row = (XSSFRow)sheettoadd.CreateRow(0); var cell = row.CreateCell(0); var data = sheettoget.GetRow(0).GetCell(4).StringCellValue.ToString(); cell.SetCellValue(data); //the cell is not populated }