以下代码打开Excel电子表格并逐个单元格地浏览它.该Console.WriteLine调用用于检查它是否正常工作.
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(@"\Extracts\Test.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
range = xlWorkSheet.UsedRange;
rw = range.Rows.Count;
cl = range.Columns.Count;
for (rCnt = 1; rCnt <= rw; rCnt++)
{
for (cCnt = 1; cCnt <= cl; cCnt++)
{
string str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2;
Console.WriteLine("Row:", str.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
System.InvalidCastException'无法将类型为'System.Double'的对象强制转换为'System.String'.'
这是指行:
string str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2;
Run Code Online (Sandbox Code Playgroud)
我知道有另一个问题有相同的错误,但该解决方案在这种情况下似乎不起作用.
感谢谢谢.
我有下表:
ONBackup表:
Contract FromDate Invoice Data
232 12/12/2017 123
232 14/02/2018 123
232 15/07/2018 123
232 14/02/2017 676
311 12/12/2017 881
Run Code Online (Sandbox Code Playgroud)
有很多"重复"的行,我的副本是发票号码相同的地方,即其他字段可以不同.
该表有140万行(大约一百万个重复),所以不确定下面是否会起作用,因为我感到厌倦了等待3个小时并计算,它必须比我更多的CPU饥饿.
DELETE FROM ONBackup
WHERE Invoice NOT IN
(
SELECT MIN(Invoice)
FROM ONBackup
GROUP BY Invoice
)
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法来做到这一点?
我正在尝试将从 varchar 继承的一些数据转换为 float:
Run Code Online (Sandbox Code Playgroud)SELECT CAST([Column 8] AS Int) FROM [Sean].[dbo].[ResApr2019]
我收到此错误:
消息 245,级别 16,状态 1,第 2 行 将 varchar 值“14,714.000”转换为数据类型 int 时转换失败。
有什么想法可以解决这个问题吗?
谢谢,