Tag: c#

在Excel中突出显示单元格/使其变成粗体

在一个小组项目中,我必须写一个表格到一个Excel工作表。 我已经完成了,但是我需要突出显示数据所在的表格区域,可以在这些图片中看到: https://gyazo.com/51c57897d9a1ce8df000d6ff0f18de20 https://gyazo.com/bcc879cd7d1c5f12ccb853490dca22f2 第一张图片显示了它应该看起来没有数据,第二张图片显示了我的当前文件加载的数据。 是否有可能突出显示在数据应该是第一张图片? 我一直没有能够find任何来源处理这个在线。 这是创buildExcel工作表的代码。 请注意,我没有正确的格式化代码,但它应该是可读的: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ExcelLibrary.SpreadSheet; using System.Data; using System.IO; using System.Windows; using Excel = Microsoft.Office.Interop.Excel; namespace ProjectXstaal { class Print { public void LoadToExcel(DataTable dt) { string filetest = "filetest.xlsx"; double allHours = 0; double overtimeHours = 0; if […]

Excel加载项function区单击事件冒泡

我正在遵循MSDN上的演练: 使用function区devise器创build自定义选项卡 看第3步和第4步: 在第3步中,它将一个事件处理函数添加到ribbon_Load函数中,基本上将一个单击事件添加到function区中的button: private void MyRibbon_Load(object sender, RibbonUIEventArgs e) { this.button1.Click += new RibbonControlEventHandler(this.button1_Click); } 然后,在步骤4中,以我更习惯的方式添加另一个事件处理程序,如下所示: private void button1_Click(object sender, RibbonControlEventArgs e) { MergeReportInterface ui = new MergeReportInterface(); ui.ShowDialog(); } 我并不真正理解这个目的,因为它所做的只是导致事件发生两次。 如果我注释掉添加到load函数的事件处理程序,事件就会发生一次。 请问有人可以向我解释这是什么意思? 如果有的话,或者如果MSDN网站上有一些错误。 应该怎样处理一个丝带点击事件?

如何插入.txt到Excel?

我的.txt文件的值由空格分隔。 我想将它存储在一个Excel工作表中,每个值由空格分隔。 我想完整的第一列Excel表格填充'1',然后我的.txt的数据应分别存储在不同的列。 有人可以帮我完成代码吗? using System; using System.Collections.Generic; using System.Text; using System.IO; using Excel = Microsoft.Office.Interop.Excel; namespace ExcelExample { class CreateExcelDoc { private Excel.Application app = null; private Excel.Workbook wb = null; private Excel.Worksheet sheet = null; private Excel.Range workSheet_range = null; public CreateExcelDoc() { createDoc(); } public void createDoc() { try { app = […]

c# – Interior.Color不工作

using Excel = Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Excel; 码 oSheet = (Excel.Worksheet)oWB.ActiveSheet; oSheet.Name = "Data"; oSheet.Cells[1, 1].Interior.Color = 4; 我的目标是获得单元格的值,并需要将背景颜色设置为颜色索引4。 例。 如果单元格[5,2]包含文本为“否”,则需要将设置的背景颜色设置为彩色。 指数4。 但是我得到错误 不包含“Interior”的定义,并且没有可以find接受“object”types的第一个参数的扩展方法“Interior”

将Asp.net Gridview导出为Excel错误消息

我是通过使用下面的RenderControl方法出口一个GridView到Excel的一部分代码。 gridExcel.HeaderRow.BackColor = System.Drawing.Color.FromArgb(0, 255, 255, 204); gridExcel.HeaderRow.Font.Bold = false; gridExcel.HeaderRow.Height = Unit.Pixel(30); StringWriter sw = new StringWriter(); gridExcel.RenderControl(new HtmlTextWriter(sw)); string renderedGridView = sw.ToString(); //filename will be like xyz.xls System.IO.File.WriteAllText(@filename, renderedGridView); 它成功地创build了excel文件,但是当这个文件从网站下载并且用户从下载文件夹打开时,每次他得到下面提到的错误但是用户可以打开文件。 任何人都可以请build议可以做些什么来避免这个问题。

使用Microsoft Compatibility Pack将大量文件从xls转换为xlsx

我正在寻找一种方法来将xls文件中的大量文件以编程方式转换为xlsx文件,而且我实际上find了一种不需要付费使用库(Microsoft Compatibility Pack)的方法。 Process.Start(@"c:\Program Files (x86)\Microsoft Office\Office12\excelcnv.exe", string.Format(@" -nme -oice {0} {1}", filename, destinationFilename)) 不过,我在转换大量文件时遇到了一个问题,基本上我正在遍历一系列文件path并运行此代码,最后我最终为每个要转换的文件创build了一个进程,几乎杀死了我的机器。 我可以以某种方式使用一个进程的一些文件?

在位置0没有行:从数据集中获取值在c#中的文本框

我正在尝试从Excel中的单元格到C#中的文本框的价值。 我已经使用数据集来从Excel中获取值,但是当从数据集到文本框中取值时,会给出错误 位置0没有排 我也尝试使用Item Array,但没有用。 下面是我的代码: DataSet dsloc = new DataSet(); OleDbDataAdapter daloc = new OleDbDataAdapter(); string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + txtfilepath.Text + ";Extended Properties=\"Excel 8.0;HDR=Yes;\";"; OleDbConnection con = new OleDbConnection(connStr); string strloc = "select * from [sheet1$A5:A5]"; OleDbCommand cmdloc = new OleDbCommand(strloc, con); con.Open(); dsloc.Clear(); daloc.SelectCommand = cmdloc; daloc.Fill(dsloc); txtloc.Text = dsloc.Tables[0].Rows[0]["Location"].ToString(); 我努力了 […]

Excel检测PasteSpecial操作

我正在开发一个评估Excel上用户技能的软件。 因此,用户可以在Excel中做一些操作,正如一系列问题中所提到的,我的工作是使用Excel COM Object编程来validation用户所做的事情。 我能够validation这样的事情; 单元格格式,单元格方向,打印区域,字体types,合并单元格等,但我很努力validation“select性粘贴”操作。 我有一个WorkSheet的Change事件和WorkSheet本身的钩子。 所以我可以捕捉到用户所做的keyStroke以及单元格的实际格式。 但是我无法find一种方式来判断用户是否使用了“仅格式 – 特殊粘贴”。 有没有人可以帮助我呢?

如何通过C#将图像从URL添加到Excel工作表

这是目标: 1)从URL获取图像,在这种情况下,Google静态地图API 2)将此图像插入到Excel工作表中。 如果我必须创build(或使用现有的)形状并将背景设置为图像,那我可以。 我也可以插入特定的单元格。 我可以通过Google静态地图API(请参阅上面的URL)定义图片大小,以便始终知道。 我没有完全清楚如何做到这一点,而不是直接将文件保存到文件系统。 我目前有这样的代码获取图像的MemoryStream格式: public static MemoryStream GetStaticMapMemoryStream(string requestUrl, string strFileLocation) { try { HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest; using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) { if (response.StatusCode != HttpStatusCode.OK) throw new Exception(String.Format( "Server error (HTTP {0}: {1}).", response.StatusCode, response.StatusDescription)); using (BinaryReader reader = new BinaryReader(response.GetResponseStream())) { Byte[] lnByte […]

如何将excel文件数据导入到c#中的数据表

我将数据从excel文件移动到数据表,其中第10行是列值。所以我使用EPPLUS库(OfficeOpenXml)下面的代码。当我移动到数据表的列是Item,Description,Accountnumber,Tender,Levelnumbers 。这些都是excel文件的第10行,因此,由于顶级列的合并,它会像Item,Column1,Column2,Description,Column3,Column4,Column5,Tender,Column6,Levelnumbers这样的Item,Column1,Column2,Description,Column3,Column4,Column5,Tender,Column6,Levelnumbers 。我需要一个像首先我需要跳过空行(无数据)列Levelnumbers然后说明列名称应该移动到Column4和当前描述的列应该命名为'Edata',所以列序列应该像Item,Column1,Column2,Edata,Column3,Description,Column5,Tender,Column6,Levelnumbers 所以总的来说,通过使用下面的代码我得到了像数据表中的值 Item,Column1,Column2,Description,Column3,Column4,Column5,Tender,Column6,Levelnumbers 1,null,null,Efax,null,Edescription1,null,Tfirst,null,123353 2,null,null,Zfax,null,Zdescription1,null,Tsecond,null,null 3,null,null,Xfax,null,Xdescription1,null,Tthird,null,456546 但它应该像(Levelnumbers空白的跳过的值),如何实现它? Item,Column1,Column2,Edata,Column3,Description,Column5,Tender,Column6,Levelnumbers 1,null,null,Efax,null,Edescription1,null,Tfirst,null,123353 3,null,null,Xfax,null,Xdescription1,null,Tthird,null,456546 使用的代码是 public static DataTable getDataTableFromExcel(string path) { using (var pck = new OfficeOpenXml.ExcelPackage()) { DataTable tbl = new DataTable(); try { using (var stream = File.OpenRead(path)) { pck.Load(stream); } var ws = pck.Workbook.Worksheets.First(); bool hasHeader = true; // adjust it accordingly( i've mentioned […]