我是c#的新手,我正在尝试使用以下代码在c#中读取XLSX文件:
string Connection = "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=c:\\Temp\\source.xlsx;Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\";";
//code to read the content of format file
OleDbConnection con = new OleDbConnection(Connection);
OleDbCommand command = new OleDbCommand();
DataTable dt = new DataTable();
OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from [Tabelle1$]", con);
myCommand.Fill(dt);
Console.Write(dt.Rows.Count);
Run Code Online (Sandbox Code Playgroud)
我从输出中得到了正确的数,但我还有两个问题:
1.如何选择where语句(如何访问行)?
select * from [Tabelle1$] where A = '123' (A being an existing Excel row)
Run Code Online (Sandbox Code Playgroud)
将提出错误参数的错误...
2.can可以为我提供教程链接或简短示例如何访问数据吗?
我有一个在Unix下描述的文件:
$file xxx.csv
xxx.csv: UTF-8 Unicode text, with very long lines
Run Code Online (Sandbox Code Playgroud)
在less/中查看它vi会使一些特殊的字符(ßİ...)不可读(├╝); Windows也不会显示它; 将其直接导入数据库只会将特殊字符更改为其他一些特殊字符(+ä,+ñ,...).
我想现在将它转换为带有iconv的"默认可读"编码.当我尝试用iconv转换它时
$iconv -f UTF-8 -t ISO-8859-1 xxx.csv > yyy.csv
iconv: illegal input sequence at position 1234
Run Code Online (Sandbox Code Playgroud)
使用UNICODE作为输入,UTF-8作为输出将返回相同的消息
我猜这个文件有些编码用另一种我不知道的格式 - 我怎样才能找出哪种格式才能将它转换成"普遍"可读的东西......
在foreach循环中我想使用前兄弟::
<for-each..>
<xsl:sort select="type"/>
<xsl:when test="preceding-sibling::data[1]/type != type
Run Code Online (Sandbox Code Playgroud)
问题是foreach中的"type"与未排序的前兄弟比较,例如
data1/type = 1
data2/type = 2
data3/type = 1
Run Code Online (Sandbox Code Playgroud)
将在第二个循环中比较silbling = 2(原始未排序)和type = 1(因为它已排序)
有办法吗?
更新:我的意图如下
before after
data/type2 type1 value1
data/type1 type1 value2
data/type1 and speaking in HTML a spacer here (I compare type2:value to preceding-sibling value
data/type2 type2 value1
type2 value2
Run Code Online (Sandbox Code Playgroud)
我有其中类型是城镇地址的未排序的,我需要通过镇,取决于值和其他领域(部分工作做一些东西排序的HTML表,但因为与前同辈比较是不在排序的每个人工作,我遇到了问题
我试图让OCUnit对我的项目做任何事情,但我失败了:-(有什么好的教程可以让它发挥作用吗?我找到的所有内容都有不同之处,它们都非常复杂......
我试过的是例如
码:
#import <SenTestingKit/SenTestingKit.h>
@interface XTest : SenTestCase {
}
@end
@implementation XTest
- (void)testAuthentication {
STFail(@"fail");
}
Run Code Online (Sandbox Code Playgroud)
@结束
结果是,构建成功......我需要做些什么来使单元测试工作?
对单元测试和模拟非常新,我有一个方法来测试它在新对象上调用方法。我怎样才能模拟内部对象?
methodToTest(input){
...
OtherObject oo = new OtherObject();
...
myresult = dosomething_with_input;
...
return myresult + oo.methodX();
}
Run Code Online (Sandbox Code Playgroud)
我可以模拟 oo 返回“abc”吗?我真的只想测试我的代码,但是当我模拟“methodToTest”返回“42abc”时,我不会测试我的“dosomething_with_input”代码......
我有一张桌子:
| ID | Val |
+-------+-----+
| abc-1 | 10 |
| abc-2 | 30 |
| cde-1 | 10 |
| cde-2 | 10 |
| efg-1 | 20 |
| efg-2 | 11 |
Run Code Online (Sandbox Code Playgroud)
并希望得到基于子串(ID,1,3)和最小值的结果,并且如果Val有重复,则ist必须是第一个
| ID | Val |
+-------+-----+
| abc-1 | 10 |
| cde-1 | 10 |
| efg-2 | 11 |
Run Code Online (Sandbox Code Playgroud)
问题是我卡住了,因为我不能使用group by substring(id,1,3),ID,因为它将再次有2行(每个用于abc-1和abc-2)