小编wou*_*ter的帖子

如何命名我制作的新 Excel 工作表并将其放置在所有工作表的末尾?

我想出了如何用 C# 制作一个新的 Excel 工作表。我这样做:

private static Microsoft.Office.Interop.Excel.ApplicationClass appExcel;
appExcel.Worksheets.Add();
Run Code Online (Sandbox Code Playgroud)

但我不知道如何为我制作的 Excel 工作表命名,也不知道如何将其放在末尾而不是开头。

我试过这个:

sheet1 = appExcel.Worksheets.Add();
sheet1.name = "test";
Run Code Online (Sandbox Code Playgroud)

但这没有用。我也查看了添加功能,但我无法以这种方式填写名称:appExcel.Worksheets.Add("test");

我的代码:

excel_init("C:\\Users\\me\\Desktop\\excel2.xlsx");

private static Microsoft.Office.Interop.Excel.ApplicationClass appExcel;
        private static Workbook newWorkbook_First = null;
        private static _Worksheet objsheet = null;

static void excel_init(String path)
{
    appExcel = new Microsoft.Office.Interop.Excel.ApplicationClass();

    if (System.IO.File.Exists(path))
    {
        // then go and load this into excel
        newWorkbook_First = appExcel.Workbooks.Open(path, true, true,5); // does NOT make 5 excel sheet???
        objsheet = (_Worksheet)appExcel.ActiveWorkbook.ActiveSheet;
    }
    else
    {
        try
        { …
Run Code Online (Sandbox Code Playgroud)

c# excel

6
推荐指数
1
解决办法
9898
查看次数

减少if语句本身

这是我目前的if语句:

   if (excel_getValue("A" + i) == "" && 
    excel_getValue("A" + (i + 1)) == "" && 
    excel_getValue("A" + (i + 2)) == "" && 
    excel_getValue("A" + (i + 3)) == "" && 
    excel_getValue("A" + (i + 4)) == "" && 
    excel_getValue("A" + (i + 5)) == "" && 
    excel_getValue("A" + (i + 6)) == "" && 
    excel_getValue("A" + (i + 7)) == "" && 
    excel_getValue("A" + (i + 8)) == "")
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以减少这种说法吗?我应该在for循环中构建这个if语句吗?

顺便说一下,这个if语句如果已经在forloop中并且它使用了forloop的i

c# if-statement

5
推荐指数
1
解决办法
175
查看次数

使var处于for循环中

这很难解释,但我会在我的代码中展示我想要的一个例子:目前我这样做:

var something1 = new (Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1, XlSheetType.xlWorksheet);
var something2 = new (Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1, XlSheetType.xlWorksheet);
var something3 = new (Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1, XlSheetType.xlWorksheet);

something1.Name = "sheet1";
something2.Name = "sheet2";
something3.Name = "sheet3";
Run Code Online (Sandbox Code Playgroud)

我想在for循环中制作那些var这是我认为它应该是:

for (int i=1;i<4;i++)
{
   var ("something" +i) = new Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1, XlSheetType.xlWorksheet); // this (of course) doenst work
}
Run Code Online (Sandbox Code Playgroud)

关于如何做到这一点的任何想法?

我试过这个,但它不起作用:

var something = new (Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1 , XlSheetType.xlWorksheet)[4];

.net c# for-loop var

3
推荐指数
1
解决办法
107
查看次数

过滤两个特殊字符之间的文本

例如,我有这些字符串:

"qwe/qwe/qwe/qwe//qwe/somethinghere_blabla.exe"
"qwe/qwe/q//we/qwe//qwe/somethingother_here_blabla.exe"
"qwe/qwe/qwe/qwe//qwe/some_numbers_here_blabla.exe"
Run Code Online (Sandbox Code Playgroud)

现在我想在最后的'/'和最后的'_'之间得到文本.结果将是:

"somethinghere"
"somethingother_here"
"some_numbers_here"
Run Code Online (Sandbox Code Playgroud)

最简单,最清晰的方法是什么?

我不知道如何做到这一点,如果我将它们分成'/'和'_',那么这样做会分开吗?我想不出怎么办.

也许从末尾扫描字符串直到它到达第一个'/'和'_'?或者有更简单快捷的方式吗?因为它必须扫描~10,000个字符串.

string[] words = line.Split('/', '_'); //maybe use this? probably not
Run Code Online (Sandbox Code Playgroud)

提前致谢!

.net c# string split

1
推荐指数
1
解决办法
558
查看次数

如何继续将int添加到列表中,同时查看这些int是否已经在列表中?

我想列出用户输入的内容.但是当这个列表已经有用户填写的int时,它必须给出一个error(Console.Writeline).这是我到目前为止:

List<int> list = new List<int>();

//this code is in a for-loop 
string a = console.ReadLine();
if(!int.TryParse(a, out number))
   Console.WriteLine("give a number");
else
{
    if (number < anotherlist.Count && number >= 0)
    {
        for (int i = 0; i < list.Count; i++)
        {
            if (list[i] == number)
                Console.WriteLine("number already given");//so dont add this number to the list
            else
                list.Add(number);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# for-loop list

1
推荐指数
1
解决办法
84
查看次数

标签 统计

c# ×5

.net ×3

for-loop ×2

excel ×1

if-statement ×1

list ×1

split ×1

string ×1

var ×1