小编Thu*_*uck的帖子

尽管 worksheet.xml 和 styles.xml 中没有存储关于小数精度的信息,但 Excel 如何正确显示小数值?

以下是我正在执行的检查行为的步骤:

1# 创建一个 Excel(xlsx) 文件,将 1234.56789 放在一个单元格中,保存它。
2#解压.xlsx文件,查看sheet1.xml和styles.xml文件。

在 xl/worksheets/Sheet1.xml 中,您将看到以下内容:

<sheetData><row r="1" spans="1:1" x14ac:dyDescent="0.25"><c r="A1" s="1"
<v>25778.567889999998</v>
</c></row></sheetData>
Run Code Online (Sandbox Code Playgroud)

Styles.xml 中没有关于原始数字精度的信息,即1234.56789.

当我们在 MS Excel 中打开 Excel 时,它如何显示原始值?
尽管提取的文件中没有信息,它如何重建原始数字?

请注意,我没有更改单元格格式类型或任何内容,因此单元格格式为 General。

我知道因为 Excel 将数字存储为浮点数,所以它无法将值保存到完美的精度,我无法理解的是当我在 MS Excel 中打开它时它如何保留原始值。我正面临一个关于使用 OpenXML SDK 读取 Excel 文件的问题,但在询问该问题之前,我正在寻找这个更基本问题的答案。

excel openxml openxml-sdk

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

如何通过单元测试方法访问数据文件?

这是我尝试访问文件的方式-

  1. 我在单元测试项目中添加了一个文件夹“ TestData”

  2. 通过添加->现有项目添加了一个文件。设置构建操作=无,复制到输出目录=总是复制

通过以下单元测试方法访问文件-

string fileName = System.IO.Path.Combine(
            System.IO.Path.GetDirectoryName(
            System.Reflection.Assembly.GetExecutingAssembly().Location), "TestData\\TestExcel2007File1.xlsx");

XmlDocument actual;
actual.Load(fileName);       //Throws exception saying cannot find part of the file path
Run Code Online (Sandbox Code Playgroud)

我也尝试将Method属性用作-

[TestMethod, DeploymentItem(@"Test Data\", @"Test Data\")]
Run Code Online (Sandbox Code Playgroud)

似乎没有任何工作。

生成的文件路径是

"D:\\MyProject\\TestResults\\MACHINE_NAME 2015-01-23 05_21_45\\Out\\TestData\\TestExcel2007File1.xlsx"
Run Code Online (Sandbox Code Playgroud)

并且Out文件夹没有TestData文件夹或Excel文件。

编辑:我引用的程序集存在于Out文件夹中。我正在使用Visual Studio 2010。

我在Visual Studio 2012的另一个项目中执行了相同的步骤,似乎可以找到该文件并按预期工作。

编辑2:我发现TestData文件夹复制到bin \ debug文件夹中,而不是在生成的路径中。但是引用的程序集将复制到生成的路径中!

编辑3:添加了一个测试设置文件并选中了“启用部署菜单”,在“其他文件和要部署的目录”列表中添加了TestData文件夹,但仍然无法使用。

c# unit-testing visual-studio-2010

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

Method属性TestMethod和TestMethod()之间有什么区别?

我正在使用Visual Studio Unit test fwk为C#项目编写单元测试,并发现使用[TestMethod][TestMethod() ] - 任何属性都可以正常工作.他们之间有什么区别?

c# unit-testing visual-studio-2010

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

如果我使用HMACSha1作为散列算法,为什么PasswordDerivedBytes每次都会生成不同的密钥?

我使用相同的密码和盐,但每次运行PasswordDerivedBytes时它都会生成不同的密钥.但是,如果我使用Sha1,它每次都会产生相同的密钥.这是为什么?

如果我使用相同的密码,salt,initvector组合,知道它使用HMACSha1,为什么Rfc2898DerivedBytes每次产生相同的密钥?

以下代码摘要 -

string passPhrase = "passPhrase";
byte[] saltBytes = Encoding.ASCII.GetBytes("saltValue");
int iterations = 2;
int keySize = 32;
string hashAlgo = "HMACSHA1";

Rfc2898DeriveBytes derivedBytes = new Rfc2898DeriveBytes(passPhrase, saltBytes, iterations);
byte[] keyBytes = derivedBytes.GetBytes(keySize);

PasswordDeriveBytes password = new PasswordDeriveBytes(passPhrase, saltBytes, hashAlgo, iterations);
byte[] keyBytes2 = password.GetBytes(keySize);
Run Code Online (Sandbox Code Playgroud)

c# encryption cryptography encryption-symmetric

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