我想将公式添加到Excel工作表.
我设法使用Formula属性.
问题是,当我在Excel中打开工作表时,我可以看到该公式有效 - 但我只能在单元格中看到结果.我看不到在Excel顶部的公式栏中计算的公式.
显然,如果我在Excel中输入一个公式,我可以看到单元格中的结果和公式栏中的公式.
我的一些代码:
for (int i = 0; i < nOfColumns / 3; i++)
{
Range cells = workSheet.Range[workSheet.Cells[2, i * 3 + 3], workSheet.Cells[lastRowNumber, i * 3 + 3]];
cells.FormulaR1C1 = "=IF(EXACT(RC[-2],RC[-1]),TRUE,ABS(RC[-2]/RC[-1]-1))";
}
Run Code Online (Sandbox Code Playgroud)
下面是测试代码.即使在我保存工作簿之后 - FormulaHidden也是假的,我可以成功检索出来的公式.真的很沮丧
Microsoft.Office.Interop.Excel.Application excelApp = null;
Workbooks workBooks = null;
Workbook workBook = null;
Worksheet workSheet;
try
{
excelApp = new Microsoft.Office.Interop.Excel.Application();
excelApp.DisplayAlerts = false;
workBooks = excelApp.Workbooks;
workBook = workBooks.Open(filePath, AddToMru: false);
workSheet = workBook.Worksheets.get_Item(1);
int nOfColumns = …Run Code Online (Sandbox Code Playgroud) 假设我有一个模块,需要在应用程序启动时初始化一次(以传递配置)。模块将如下所示:
MyModule.js
let isInitiazlied;
const myModule = {
init: function() {
isInitiazlied = true;
},
do: function() {
if (!isInitiazlied)
throw "error"
//DO THINGS
}
}
export default myModule;
Run Code Online (Sandbox Code Playgroud)
我想用玩笑来对它进行单元测试。测试文件看起来像这样:
MyModule.test.js
import myModule from './MyModule'
describe('MyModule', () => {
describe('init', () => {
it('not throws exception when called', () => {
expect(() => myModule.init()).not.toThrow();
});
})
describe('do', () => {
it('throw when not init', () => {
expect(() => myModule.do()).toThrow();
});
})
})
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,第二次测试失败,因为模块已经初始化,因此不会引发异常。我试过在beforeEach中使用jest.resetModules(),但这没有用。
有没有解决的方法(不同的模块模式/测试用例)?