我正在尝试将excel表中列Q前面的列B移动,作为我正在处理的报告的一部分.我有VBA的经验,但在c#中相对较少,所以我花了最后一小时在谷歌上找不到解决方案,我觉得这应该很简单,但我不能完全理解.
方法一,导致"Range类的插入方法失败"msg.
Excel.Range rngCut1 = JobLabourSheet.get_Range("B:B", Type.Missing);
Excel.Range rngPaste1 = JobLabourSheet.get_Range("Q:Q", Type.Missing);
rngCut1.Columns.Cut(rngPaste1.EntireColumn.Insert(Excel.XlInsertShiftDirection.xlShiftToRight, rngCut1));
Run Code Online (Sandbox Code Playgroud)
方法二导致"无法获取Range类的Cut属性"msg.
Excel.Range rngCut1 = JobLabourSheet.get_Range("B:B", Type.Missing);
Excel.Range rngPaste1 = JobLabourSheet.get_Range("Q:Q", Type.Missing);
rngCut1.Columns.Cut(rngPaste1.EntireColumn.Insert(Excel.XlInsertShiftDirection.xlShiftToRight, Missing.Value));
Run Code Online (Sandbox Code Playgroud)
在第二种方法中,当我省略CopyOrigin时,我得到了msg,但它确实在列Q前插入了一个空白列.
在VBA中,我将使用以下内容:
Columns("B:B").Cut
Columns("Q:Q").Insert Shift:=xlToRight
Run Code Online (Sandbox Code Playgroud)
但就像我说的那样,我的c#体验目前是有限的,所以我不知道如何将它翻译成c#
我有一个excel范围,我需要按两列排序.数据总是从A列到AA列,我需要先按A列(这是一个日期列,最旧到最新)进行排序,然后按F列(数字列,从最小到最高)进行排序.行数会有所不同.
这是我到目前为止所记得的,请记住我对c#比较新.
Excel.Worksheet JobDataSheet = new Excel.Worksheet();
foreach (Excel.Worksheet tmpSheet in Globals.ThisAddIn.Application.ActiveWorkbook.Sheets)
{
if (tmpSheet.Name == "Job Labour" || tmpSheet.Name == "Job Materials" || tmpSheet.Name == "Job Cost Report")
{
tmpSheet.Delete();
}
if (tmpSheet.Name == "Job Cost")
JobDataSheet = tmpSheet;
}
int MyCount = JobDataSheet.UsedRange.Rows.Count;
//Sort Collection by Date & Ref Line
Excel.Range tempRange = JobDataSheet.get_Range("A2:A" + MyCount);
Excel.Range tempRange2 = JobDataSheet.get_Range("F2:F" + MyCount);
JobDataSheet.Sort.SortFields.Clear();
JobDataSheet.Sort.SortFields.Add(tempRange // First Key
,Excel.XlSortOn.xlSortOnValues
,Excel.XlSortOrder.xlAscending
,Type.Missing
,Excel.XlSortDataOption.xlSortNormal);
JobDataSheet.Sort.SortFields.Add(tempRange2 // Second Key
, Excel.XlSortOn.xlSortOnValues
, …Run Code Online (Sandbox Code Playgroud) 我有一个电子表格(excel 2010),其中 AI 列中有一个公制值(2413 毫米),而 BI 列中需要一个公式来转换 2413 毫米以按以下格式显示英尺/英寸(7' 11")
如果我使用 3 或 4 列首先将 2413 转换为 7.9',然后将英尺和英寸提取到两个单独的列中,最后将单独的英尺和英寸连接成一个最终单元格,我就可以做到这一点。
我真的很想能够在一个单元格内完成所有这些。
我有用 .net-4.0 编写的 c# windows 窗体应用程序
我有一个 datagridview ( dgvItems),我在导入函数末尾以编程方式绑定到数据集和数据表。
我有一个导入按钮,可以将数据从选定的 Excel 文件导入到名为 的表中_dtItemAdjustList,导入数据后,我将该表绑定到我的网格。我用来绑定网格的代码是:
dgvItems.DataSource = _dsQtyAdjust;
dgvItems.DataMember = "Item Adjust List";
dgvItems.Refresh();
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切工作正常,如果我在 datagridview 中编辑导入的数据,它会在_dtItemAdjustList编辑每个单元格后更新绑定表。
当我尝试手动向 datagridview 添加一行时,我的问题出现了,它不会立即将该新行添加到绑定的数据表中。
示例:我在活动结束时设置了一个断点dgvItems_CellValueChanged并添加了一个_dtItemAdjustList.Rows.Count手表,下面是发生的情况。
导入数据并编辑现有导入行之一后,手表会显示正确的行数,比如说5。
现在我单击最后一个 * 行,然后在我的 item# 列中输入一些内容并点击选项卡,断点触发,但我的行数仍然只显示5,我在新行中又填写了一些单元格,但每次我留下一个单元格和我的 CellValueChanged 事件触发,行数保持为5。
接下来,我添加第二个手动行,现在,在我从为第二个新行填写的第一个单元格中跳出后,我的行计数器变为6,但从技术上讲,此时我已将2 个手动行添加到我导入的5行中,所以计数器应读数7
这样重复,基本上每个新手动添加到 datagridview 的行都不会添加到绑定数据表中,直到a)添加另一行或b)我返回并重新编辑现有行上的单元格。
编辑忘记提及我尝试通过两种方式绑定我的 DataGridView:
DataSource = _dsQtyAdjust //dataset Name
DataMember = "Item Adjust …Run Code Online (Sandbox Code Playgroud) 我有一个报告(SSRS 2008 r2),它有两个参数,@StartDate和@EndDate。两个参数都设置为类型:Date / Time,并允许使用NULL值。现在,@ EndDate默认为NULL(我正在处理SP中的NULL值),并且在我的报告中,我有一些文本框,其中显示了报告中使用的开始日期和结束日期范围。
对于显示结束日期的文本框,如果参数为null或空白,则使用一个显示当前日期的表达式,但是如果用户选择结束日期,则文本框应显示所选的结束日期。这是我遇到问题的地方。
我正在使用以下表达式显示结束日期。
=IIF(IsNothing(Parameters!EndDate.Value) OR Parameters!EndDate.Value = "", Format(Now(), "MMM - dd, yyyy"), Format(Parameters!EndDate.Value, "MMM - dd, yyyy"))
如果结束日期参数为NULL,则该表达式有效,但如果选择结束日期,则该表达式始终返回#Error
我创建了单独的文本框来尝试此表达式的不同部分。都:
Format(Now(), "MMM - dd, yyyy")
和
Format(Parameters!EndDate.Value, "MMM - dd, yyyy")
自己做得很好。这是我尝试将它们放入IIF块中以根据EndDate参数是否为null或是否为空白(错误出现时)有条件地返回一个或另一个的情况。
我正在使用ac#-4.0 Windows Form应用程序,我需要从序列号中删除填充零.
我的序列存储在一个字符串中,看起来像这个BMS21-14-000000000000000000120,我最后的结果是BMS21-14-120.
序列号结构是:
现在,我们的前缀和递增数字的长度将随产品而变化,但结构是一致的.它总是前缀,年份和递增#,它们总是用短划线分隔.
我尝试遵循msdn概述的示例,但我无法让它为我们的序列号工作.
我正在开发一个应用程序,用户将破折号分隔值输入文本框,文本框值放入字符串数组,用" - "分隔.我需要搜索这个数组并获得包含字母"q"的元素的位置.
此文本框中可能有6种不同的输入,输入示例如下:
我将文本框值拆分为" - ".代码是:string[] arrayJobSuffix = txtBFSJob.Text.Split(new char[] { '-' }, 5);
现在我需要搜索这个arrayJobSuffix数组并找到包含"q"的元素的位置.
例如,假设数组中的第一个元素为0,则:
c# ×4
excel ×3
c#-4.0 ×2
arrays ×1
datagridview ×1
datatable ×1
excel-2010 ×1
sorting ×1
split ×1
ssrs-2008 ×1
ssrs-2008-r2 ×1
string ×1
textbox ×1
trim ×1
winforms ×1